博客
关于我
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 分页语句 Limit原理
查看>>
MySQL 创建新用户及授予权限的完整流程
查看>>
mysql 创建表,不能包含关键字values 以及 表id自增问题
查看>>
mysql 删除日志文件详解
查看>>
mysql 判断表字段是否存在,然后修改
查看>>
mysql 协议的退出命令包及解析
查看>>
mysql 取表中分组之后最新一条数据 分组最新数据 分组取最新数据 分组数据 获取每个分类的最新数据
查看>>
mysql 多个表关联查询查询时间长的问题
查看>>
mySQL 多个表求多个count
查看>>
mysql 多字段删除重复数据,保留最小id数据
查看>>
MySQL 多表联合查询:UNION 和 JOIN 分析
查看>>
MySQL 大数据量快速插入方法和语句优化
查看>>
mysql 如何给SQL添加索引
查看>>
mysql 字段区分大小写
查看>>
mysql 字段合并问题(group_concat)
查看>>
mysql 字段类型类型
查看>>
MySQL 字符串截取函数,字段截取,字符串截取
查看>>
MySQL 存储引擎
查看>>
mysql 存储过程 注入_mysql 视图 事务 存储过程 SQL注入
查看>>