IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP/IP 学习内容 -> 正文阅读

[网络协议]TCP/IP 学习内容

tcp/ip五层网络模型

在这里插入图片描述

这个是现互联网正在运用的模型,还有个参考模型
iso7层网络模型
就是将tcp/ip模型的应用层又划分成了
应用层、表示层、会话层,
当然是iso七层网络模型先提出,然后才有的tcp/ip模型
为什么tcp/ip模型要将七层模型缩减成五层而不是三层四层或者不是将会话层与传输层合并呢?
就目前我的理解来讲,tcp/ip的应用层更适合开发应用,因为不同的应用对七层模型的应用层,表示层,会话层,有不同的需求。需要对其进行修改。
然后到底层的传输层、网络层、链入层、物理层需求基本都是一样的。

以应用层的http协议为例子展示整个网络模型的运行

在这里插入图片描述
先讲传输层的三次握手与四次分手
传输层需要建立连接形式是 对称的结构,并且一定能够唯一确定是哪个程序或者线程的连接 ipA+porta:ipB+portb,服务端的port一般都是确定的像tomcat的8080端口;sshd的22端口,mysql的3306端口,不是说这些端口不能改,而是说在进行连接的时候服务端的端口是确定的,不会更改的,但客户端不一样,客户端是随机分配的,客户端的端口数量是65535,但对于不同的ip,是可以使用同一端口号,只要能唯一区分就行。因为tcp协议是面连接的是传输可靠的,为了满足以上需求才进行了三次握手与四次分手,
三次握手具体内容
在这里插入图片描述
syn包包含seq和ack再握手阶段的规律是客户端第一次请求的seq随机生成然后服务器返回一个ack=客户端发来的seq+1 再发送一个随机生成的seq给客户端,然后客户端发送一个ack=1;三次握手结束。握手结束后双方就会开辟对应socket资源这就是连接。可靠的是指每次发送请求都会需要ack确认。
三次握手结束后资源开辟出来后就进行数据传输,数据传输中的seq与ack就与三次握手中的有一定区别,首先客户端的第一个seq=1:1+此次发送请求的长度。然后服务器会返回一个ack=客户端发来的seq+1;表示收到消息;然后在发送一个seq=1:1+本次发送的数据长度,ack为回答请求的ack;因为分包的原因,服务器会再发送一个包seq=上次的seq+本次发送的数据长度ack仍然为回答请求的ack;每次数据的发送都会进行ack返回表示收到
4次分手,客户端发送一个FIN,seq为此次请求的seq,服务器收到后会发送一个ack=客户端的seq+1表示收到,如果没有再要传输数据的话,服务器也发送一个FIn,seq=本次数据传输最后的seq也就是上一次的seq,和ack。ack与上次一样表示哪一次的请求。然后客户端返回一个ack,ack为服务器的seq+1,结束;
在这里插入图片描述

网络层:
每台电脑都有自己的ip,网关,子网掩码,mac。网络层需要寻址,
子网掩码与ip进行&运算用来计算网络号;
如果说把整个网络的拓扑结构都存入寻址效率低下不说,也不太现实,所以有了“下一跳”即只需记住寻找下一步即可,每个节点都寻找下一跳整个网络就互联起来。寻址知道了要找哪个ip但是不知道怎么将数据传输过去。所以需要链路层
链入层
将客户端的ip与服务器的ip再次封装去寻找包含服务器ip的mac地址。
就是 网络层通过子网掩码已经算出了网关,那么要将数据发送到这个网关,但是我的目的不是找这个网关我的目的是找服务器的ip。所以为了发送本次的数据,所以将数据封装后外面是下一跳的mac地址。到达下一跳的mac后
下一跳的路由会将本次数据解码看到里面的ip,然后发现不是自己的ip,然后就又寻找下一跳,封装,发送直到找到目的ip

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-01 14:49:27  更:2021-08-01 14:50:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/3 10:37:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码