TCP传输层协议

161 阅读2分钟

TCP特性

1.工作在传输层

2.面向连接协议

3.全双工协议

4.半开关

5.错误检查

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

7.确认机制

8.数据恢复,重传

9.流量控制,滑动窗口

更多关于tcp的内核参数,可参看man 7 tcp详细解释

tcp要先建立连接

系统当中 每打开一个 进程 会配pid(系统中的编号,方便管理)

20220713100011.png 端口号作用:确定进程

三类:

1.规定好的 知名的端口号 80 443 人为规定

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

3.人类自由使用

20220713190436.png

去访问服务器

下载文件 (FTP,tftp,nfs) ,访问网页(apche nginx tomact ISIS)

安装软件

提供服务 我的端口号一定要固定

客户端——服务端

telnet :

可以远程连接: 远程控制服务器

telnet ip地址 端口号 查看端口号是否打开

20220713100708.png

控制位:

URG(紧急位):是否有紧急数据

ACK(确认位):前面确认号字段是否有效

PSH(急切位):提示接收端应用程序应该立即从TCP接收缓冲区中读走数据

RST(重置位):说明与主机的连接出现了严重错误

SYN(同步位):请求建立连接或同意 建立连接的报文。

FIN(断开位):本端要关闭连接

TCP连接和断开连接过程

20220807101812.png

当pc1想和pc2建立起连接 将 连接信息写入报文

第一步 :pc1会发送一个 建立连接的请求报文 : 这个 报文中 有

  1. 报文的序号(seq=x)

  2. 同步位(请求建立连接关系: SYN=1 ACK=0 控制 位:当前两台机器处于什么状态? 建立连接 处于 连接 断开连接 )

第二步: 当pc2 收到消息以后 是不是要回复一个报文

  1. 报文的序号 (seq=y)
  2. ack确认号( 我希望你下一次发送 x+1 序号的报文 给你 )
  3. 控制位 SYN=1 ACK=1 请求建立连接 pc2 同意建 立连接

第三步:收到 pc2 同意建立连接的报文后

1.会发送一个x+1报文

2.会告诉对方 我希望你下次 发送y+1的序号报文给我

3.最后 将ACK=1 封装进去

20220807102237.png

e3c62071eb0251958bc36a774701a85.png

8d30e286a452eda6e0dbd27e2a6363d.png

20220713211341.png