实验楼_TCP/IP网络协议基础_Note05_S6

来源:互联网 发布:缓存服务器软件 编辑:程序博客网 时间:2024/05/22 17:23

S6 传输层:TCP协议

一、TCP特点

面向连接

可靠传输:无差错、不丢失、不重复、按顺序

点对点:TCP连接的两端都设有发送缓存和接收缓存

全双工



二、TCP报文段结构

TCP报文段的报头有前20字节的固定部分,后面4n字节是根据需要而添加的字段。

TCP报文头部结构

1. 序号:占4字节序,序号范围[0,2^32-1],序号增加到 2^32-1 后,下个序号又回到0。

2. 控制位:共有6个控制位,说明本报文的性质,意义如下:

①URG紧急:当URG=1时,它告诉系统此报文中有紧急数据,应优先传送(比如紧急关闭),这要与紧急指针字段配合使用。

②ACK确认:仅当ACK=1时确认号字段才有效。建立TCP连接后,所有报文段都必须把ACK字段置为1。

③PSH推送:若TCP连接的一端希望另一端立即响应,PSH字段便可以“催促”对方,不再等到缓存区填满才发送。

④RET复位:若TCP连接出现严重差错,RST置为1,断开TCP连接,再重新建立连接。

⑤SYN同步:用于建立和释放连接。

⑥FIN中止:用于释放连接,当FIN=1,表明发送方已经发送完毕,要求释放TCP连接。



三、连接建立与释放

1. 三次握手

三次握手过程示意图


2. 四次挥手

四次挥手过程示意图



四、其他

1. 超时重传与连续ARQ协议

2. 流量控制和拥塞控制




S6作业  尝试抓取一TCP数据报,并解读其内容


STEP 01

需要下载从github下载代码,是基于TCP的聊天小程序,分为server(服务端)和client(客户端):

$cd Desktop$git clone https://github.com/shiyanlou/tcp_ip_6$cd tcp_ip_6$gcc -o server server.c$gcc -o client client.c


STEP 02

编译完成后先不要运行,先打开tcpdump,使用命令安装并运行tcpdump:

$sudo apt-get update$sudo apt-get install tcpdump$sudo tcpdump -vvv -X -i lo tcp port 7777


STEP 03

最小化运行tcpdump的终端,然后另开一个终端,运行server程序:

$cd Desktop/tcp_ip_6$./server 127.0.0.1


STEP 04

然后再打开第三个终端,运行client程序:

$cd Desktop/tcp_ip_6$./client 127.0.0.1


STEP 05

现在,使用client和server聊天,轮流互发几条简短的消息(比如hello、hi之类的)便可以关闭client和server,回到运行tcpdump的终端查看抓取的报文段内容:

1. server与client建立连接

建立连接


观察一下建立连接的【三次握手】

三次握手

值



2. 相互发送消息

hi

hello



3. 断开连接

断开连接


观察一下断开连接的【四次挥手】

四次挥手

值


说明1:

说明

图片来源:实验楼


说明2:

分布

黄色为TCP报文头部

紫色为TCP报文段的数据部分

黑色圈为非常重要的部分,包括:数据偏移、保留位和六个控制位

阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 酚妥拉明 甲磺酸酚妥拉明片 妥布霉素地塞米松眼膏 妥乐古银杏风景区 妥布霉素 顺妥敏 未妥投什么意思 妥怎么读 立普妥能长期服用吗 妥妥e行司机端 妥乐银杏 喜疗妥 西妥昔单抗 绞丝旁妥 妥昔单抗 喜疗妥药膏 潘妥洛克 硫喷妥钠 泰利必妥 妥投什么意思 妥洛特罗贴剂 妥瑞症候群 妥布霉素眼膏 盐酸安妥沙星片 甲磺酸酚妥拉明胶囊 甲磺酸酚妥拉明 立普妥作用 可乐必妥滴眼液 可乐必妥左氧氟沙星 绞丝旁一个妥 绞丝旁加妥读什么 未妥投第二天还会送吗 妥拼音 都是妥 妥布霉素地塞米松滴眼液 可乐必妥左氧氟沙星滴眼液 妥乐 妥乐村 妥协 妥协意思 永不妥协