博客
关于我
5.网路技术——传输层:TCP协议+UDP协议
阅读量:342 次
发布时间:2019-03-04

本文共 1441 字,大约阅读时间需要 4 分钟。

目录

1.TCP协议

1.1 TCP协议介绍

传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议

1.2 TCP报文格式

将若干个字节构成一个分组,叫报文段(Segment)

将报文段封装在IP数据报中
IP首部+TCP报文段
源端口号:为发送方进程对应的端口号
目标端口号:对应的是接收端的进程,根据这个端口确定数据送给那个应用程序的进程
序号 :TCP每个方向的编号都是相互独立的,当字节都被编上号后,TCP给每个报文指派一个序号
确认号:对发送端的确认信息
首部长度:确定首部数据结构的字节长度,一般是20字节,最大可达到60字节
保留:扩展功能,待使用
控制位:6个控制位 URG ACK PSH RST SYN FIN
URG:紧急指针有效位
ACK:ACK=1 有效
PSH:标志位=1 时要求接收方尽快将数据送达到应用层
RST:RST=1 通知重新建立TCP连接
SYN:同步序号位 ,建立连接时 SYN=1
FIN:发送端完成任务后,需要断开时 FIN=1
窗口大小 会根据网络的带宽
校验和 : 校验是否完整
紧急指针:当URG=1 才有效
选项:在TCP首部可以有多达40字节的可选信息

1.3 TCP的三次握手与四次挥手

TCP建立连接的三次握手:

第 1 次握手建立连接时,客户端向服务器发送 SYN 报文(SEQ=x,SYN=1),并进入 SYN_SENT 状态,等待服务器确认
第 2 次握手实际上是分两部分来完成的,即 SYN+ACK(请求和确认)报文。
服务器收到了客户端的请求,向客户端回复一个确认信息(ACK=x+1)
服务器再向客户端发送一个 SYN 包(SEQ=y)建立连接的请求,
第 3 次握手,是客户端收到服务器的回复(SYN+ACK 报文)。此时,客户端也要向服务器发送确认包(ACK),完成 3 次握手

TCP断开连接的四次挥手:

第一次挥手:A数据传输完毕需要断开连接,A的应用进程向B发出报文段(FIN = 1),并停止再发送数据,等待B的确认。

第二次挥手:B收到连接释放报文段后即发出确认报文段(ACK=1,),B进入半关闭等待状态,而A收到B的确认后,等待B发出的报文段。

第三次挥手:当B数据传输完毕后,B发出连接释放报文段(FIN = 1,ACK = 1),等待A 的最后确认。

第四次挥手:A收到B的连接释放报文段后,对此发出确认报文段(ACK = 1,),A进入TIME-WAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL后,A才进入CLOSE状态。

1.4 TCP的端口号及其功能

2.UDP协议

2.1 UDP协议介绍

Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。

UDP协议:1)无连接、不可靠的传输协议
2)花费的开销小

2.2 UDP报文的首部格式

UDP报文的首部格式:

源端口号:用来标识数据发送端的进程
目标端口号:用来标识数据接收端的进程
UDP长度:用来指出UDP的总长度,为首部加上数据
UDP校验和:用来完成对UDP数据的加错校验,是UDP协议提供的唯一的可靠机制。

2.3 UDP报文的端口号及其功能

转载地址:http://vpbe.baihongyu.com/

你可能感兴趣的文章
mysql 权限整理记录
查看>>
mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
查看>>
MYSQL 查看最大连接数和修改最大连接数
查看>>
MySQL 查看有哪些表
查看>>
mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
查看>>
MySql 查询以逗号分隔的字符串的方法(正则)
查看>>
MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
查看>>
mysql 查询,正数降序排序,负数升序排序
查看>>
MySQL 树形结构 根据指定节点 获取其下属的所有子节点(包含路径上的枝干节点和叶子节点)...
查看>>
mysql 死锁 Deadlock found when trying to get lock; try restarting transaction
查看>>
mysql 死锁(先delete 后insert)日志分析
查看>>
MySQL 死锁了,怎么办?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 深度分页性能急剧下降,该如何优化?
查看>>
MySQL 添加列,修改列,删除列
查看>>
mysql 添加索引
查看>>
MySQL 添加索引,删除索引及其用法
查看>>
MySQL 用 limit 为什么会影响性能?
查看>>
MySQL 用 limit 为什么会影响性能?有什么优化方案?
查看>>
MySQL 用户权限管理:授权、撤销、密码更新和用户删除(图文解析)
查看>>