DAY6 传输层的TCP协议与UDP协议 (重点)

137 阅读2分钟

前言:今天主要学习了TCP的详细,内容蛮多 需要背的理解的也有。

TCP的特性

1.工作在传输层

2.面向连接协议

3.全双工协议

4.半关闭

5.错误检查

6.将数据打包成段,排序

7.确认机制

8.数据恢复,重传

9.流量控制,滑动窗口

端口号

TCP要先建立连接: 系统当中每打开一个进程 会分配一个PID(编号,方便管理),其次会分配一个端口号

端口号一定要固定

端口号作用:确定两个进程通信 通过端口连接

端口分三类:1.规定好的 知名的端口号

2. 系统随机分配(客户端去访问服务端  系统会自动随机分配一个端口号给你)

3.人类自由使用(自己写)

一般访问服务器目的:下载文件(ftp tftp nfs),访问网页(apche nginx tomcat isis)

控制位

决定A和B目前处于什么状态 共11种 常用3种实例 :

A想和B请求建立连接状态 syn=1

A和B已经建立连接状态 ACK=1

A和B 已经断开连接 fin=1

控制位:

URG:紧急位: 表示本数据段是否还有紧急数据

ACK:确认位  : 已建立连接    (ack:确认号)

PSH:急切位 : 将接收端应用程序立即从缓冲区读走,为后续腾出空间

RST:重置位: 表示本数据段出现了严重错误

SYN:同步位 : 请求建议链接

FIN:断开位 :   断开连接

数据段的组成:

image.png

TCP的三次握手

所谓三次握手(Three-way Handshake),是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。

三次握手的目的是连接服务器指定端口,建立TCP连接,并同步连接双方的序列号和确认号并交换 TCP 窗口大小信息.在socket编程中,客户端执行connect()时。将触发三次握手。

这边借用一下这位博主的图片:

image.png

大致理解:客户端发送一SYN报文 SYN=1 SEQ=X ,服务端发送SYN+ack报文并设置序号为Y,确认位为X+1。客服端收到报文后,发送ack报文,确认位为Y+1.

总结:今天学习的内容很重要,以后这篇应该会多次翻阅,熟练理解与背诵把。