本次我和小伙伴分享的是网络七层中的传输层,我将会分成以下几步为大家进行分解说明:
1.TCP协议介绍
2.TCP报文格式
3.TCP三次握手
4.TCP四次挥手
5.UDP协议介绍
6.常见协议及其端口
一.TCP和UDP协议
1.TCP是面向连接的、可靠的进程到进程通信的协议
2.TCP提供全双工服务,即数据可在同一时间双向传输
3.TCP报文段(不超过1500字节,1.5kb)
- TCP将若干个字节构成一个分组,叫报文段(Segment)
- TCP报文封装在IP数据报中
TCP报文段:
1.源端口号(16)
2.目标端口号(16)
3.序号(32):发送端为每个字节进行编号,便于接收端正确重组
4.确认号(32):用于确认发送端的信息
5.首部长度(4)
6.保留(6)
7.URG(紧急指针位):是1代表开启,是0代表关闭,不需要经过缓存直接提交给应用层,举例如下:
甲和乙两台机器中分别都有缓存,这个时候甲向乙传输数据原先是会先到乙的缓存中,当数据全部发送结束之后再由乙的缓存传输到应用层
8.ACK(确认):确认位
9.PSH(快速接收传递给应用层):是1代表开启,是0代表关闭,需要经过缓存,等一批报文段到齐之后直接发送应用层,不进行排队
10.RST(重新发送连接):重置位
11.SYN(请求建立连接标记):1代表建立连接,
12.FIN(请求断开连接标记):
13.窗口大小(16):用于说明本地可接收数据段的数目,窗口大小是可变的,窗口越大传输速度越快
14.校验和(16):差错校验
15.紧急指针(16)
16.选项:可选项
二.TCP建立建立连接的过程为三次握手:(重要)
举例:此时我们有客户端PC1/服务端PC2
具体过程如下:
- PC1发送SYN请求建立连接
- PC2接收后会发送ACK确认,同时发送SYN请求建立连接(双向互通)
- PC1发送ACK确认
三.TCP断开连接的四挥手:(重要)
举例:此时我们有客户端PC1/服务端PC2
具体过程如下:
- PC1发送FIN断开连接请求,并发送ACK确认位
- PC2加以确认ACK
- PC2发送FIN断开连接请求,和ACK确认位请求
- PC1发送ACK确认位
但是这里需要注意的是在TCP断开连接过程中,有一个半关闭的概念。TCP一方可以终止发送数据,但仍然可以接收数据,称为半关闭。
此处我们举例说明例如:迅雷下载东西,在页面点击下载之后使用迅雷下载,此时退出页面之后迅雷仍会继续下载
具体过程如下:
- PC1客户端发送FIN报文段,半关闭此连接
- PC2服务器发送ACK报文段接受半关闭,然后继续发送数据,而客户端只发送ACK确认,不再发送任何数据
- PC2服务器把数据都发送完成时,就发送FIN报文段,
- PC1发送ACK报文段,这样就关闭了连接
常用的TCP端口号及其功能:
我们来分别说一下各个端口表示的含义:
- 21端口:FTP(20端口,数据连接/21端口,控制连接)
- 23端口:TELNET:明文访问
- 22端口:SSH:密文访问
- 25端口SMTP:服务器开放的端口,用于发送邮件
- 80端口:HTTP:超文本传输协议
- 443端口:HTTPS:安全传输协议
- 110端口:POP3,用于邮件的接收
- 143端口:IAMP4:用于邮件的接收
- 53端口:DNS
四.UDP协议:
1.无连接、不可靠的传输协议
2.花费的开销小
UDP报文的首部格式:
UDP长度:用来指出UDP的总长度,为首部加上数据
校验和:用来完成对UDP数据的差错校验,它是UDP协议提供的唯一可靠机制
常用的UDP端口号及其功能:
以上就是传输层协议的相关介绍及重要的TCP三次和四次握手的具体过程,还有一些常见的端口和相对应代表的含义,谢谢!