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三次握手四次分手

OSI 7层参考模型图

image.png

TCP/IPTCP/IP物理实现的层次图

image.png
image.png
虽然模型上有7层但在实现中,把上面的应用层,表示层,会话层统一整合到应用层里。
注意:
1,像平时使用的浏览器,qq等程序都是应用层
2,而传输控制层网络层链路层物理层都是计算机内核去控制的。

客户端与服务端传输流程

大体上

1,当使用浏览器访问一个网站时,要先把与网站服务器建立连接请求发送给内核。
2,通过内核中的传输层再通过三次握手与服务器的内核建立联系。
3,应用层把请求通过内核的发送到服务器的内核中,服务器的内核再与服务器应用层交互,往返都是这样,进行数据传输。
4,当传输结束后,客户端内核中的传输层再通过四次次分手与服务器的内核断开联系。
5,整个传输完成。
至于后面的网络层,链路层,物理层就不用深究,理解传输控制层就行。

简单说下传输层

传输层建立了主机端到端的链接,传输层的作用是为上层协议提供端到端的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。该层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠的数据通路。我们通常说的,TCP UDP就是在这一层。端口号既是这里的“端”。
举例:
传输层就相当于公司中的负责快递邮件收发的人,公司自己的投递员,他们负责将上一层的要寄出的资料投递到快递公司或邮局。而对于快递如何发送通过什么方式发送,那就相当于网络层,链路层,物理层进行处理的。
对于网络层,链路层,物理层本人不了解,就不细说了,了解传输层就行,就能理解tcp三次握手,四次分手。

三次握手四次分手

这个发生在传输层。

三次握手

1,首先客户端随机使用一个端口向服务器端口发送[SYN]数据包:客户端问服务端:在工作吗
2,客户端收到数据包后发送回一个[SYN,ACK]:服务端:在工作!
3,客户端收到后回个**[ACK]数据包:客户端:好嘞!**
这样就建立了连接。然后双方开辟个资源空间用来接收,发送数据,由socket(套接字或者四元组),进行调度。
socker:是由
客户端ip+端口和服务端IP+端口
组成,绝对唯一的连接,这样连接时不会产生歧义。
因为一台计算机一个网卡有65535个端口,所以理论上可以有65535种连接方式。

问题:

但明明发送两次就可以确认服务器在工作为什么要发送三次?
第一次与第二次是为了确认服务端的接受发送能力,而第二次与第三次是确认客户端的接收发送能力是否正常。
接下来就是通过http(s)进行传输数据

四次分手

当数据传输完成就会断开连接。
1,服务器->客户端发送[FIN,ACK]:分手吧。
2,客户端->服务端发送[ACK]:哼,真的分手?
3,客户端->服务端发送[FIN,ACK]:正好我也有此意,分手吧。
4,服务器->客户端发送[ACK]:行,真的分手
因为断开连接必须经过双方的同意,防止当服务端提出分手后,客户端还想传输数据。断开连接后释放资源。
?

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-10-21 12:46:40  更:2021-10-21 12:48:38 
 
开发: 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年7日历 -2024/7/3 11:00:38-

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