网络协议-TCP、IP协议和互联网协议群

目录

TCP/IP协议群简介(互联网协议群)(Internet Protocol Suite)

应用层(Application)(合并简化了展示层,会话层)

传输层(Transport)

网络层(Internet)

链接层(Link)

 物理层(Pysical)

 TCP/IP封包

 完整的TCP协议头

TCP协议封包(传输层协议)

建立TCP/IP连接为什么需要三次握手?

传输和处理数据顺序

确定一个消息的顺序:绝对时间

TCP/IP协议的处理方法

挥手(中断连接)

TCP的结束(场景)

总结与思考


TCP/IP协议群简介(互联网协议群)(Internet Protocol Suite)

类似OSI模型,一种网络协议的概念模型。

应用层(Application)(合并简化了展示层,会话层)

提供应用间通信能力

网络协议-TCP、IP协议和互联网协议群_第1张图片

传输层(Transport)

提供主机到主机(host-to-host)的通信能力

网络协议-TCP、IP协议和互联网协议群_第2张图片

网络层(Internet)

提供地址到地址的通信能力

网络协议-TCP、IP协议和互联网协议群_第3张图片

链接层(Link)

提供设备到设备的通信能力

网络协议-TCP、IP协议和互联网协议群_第4张图片

 物理层(Pysical)

网络协议-TCP、IP协议和互联网协议群_第5张图片

 TCP/IP封包

网络协议-TCP、IP协议和互联网协议群_第6张图片

 网络协议-TCP、IP协议和互联网协议群_第7张图片

 完整的TCP协议头

网络协议-TCP、IP协议和互联网协议群_第8张图片

TCP协议封包(传输层协议)

  • 每个封包称作一个TCP信息段(TCP Segment)
  • Header用于描述传输行为(如源端口,目标端口等)
  • Header后面跟若干个byte数据,每个byte拥有自己的序列号

网络协议-TCP、IP协议和互联网协议群_第9张图片

建立TCP/IP连接为什么需要三次握手?

客户端SYN_SEND【通过connect()】——请求同步SYN——》服务端【listen()】收到,状态变为SYN-RECEIVED

——我确认收到你的同步请求SYN-ACK——》客户端收到状态变为ESTABLISHED(客户端处于连接状态)——确认——》服务端收到ESTABLISHED(服务端处于连接状态)【然后开始交换数据】

具体步骤如下图:

网络协议-TCP、IP协议和互联网协议群_第10张图片

 努力保证数据的可靠

传输和处理数据顺序

确定一个消息的顺序:绝对时间

使用发送、接收时间

  • 服务器时间差异如何解决?

使用自增序号

  • A-B-A-B类型会话可以解决?
  • A-(AB)-B类型会话如何解决?

TCP/IP协议的处理方法

消息的绝对顺序用(SEQ,ACK)这一对元组描述(不变量)

SEQ(Sequence):这个消息发送前一共发送了多少字节

ACK(Acknowledge):这个消息发送前一共收到了多少个字节

挥手(中断连接)

TCP的结束(场景)

可靠性

网络协议-TCP、IP协议和互联网协议群_第11张图片

TCP的四次挥手

发起者close()【FIN_WAIT1】——FIN——>接收者CLOSE_WAIT【先处理自己的响应】LAST_ACK——ACK~FIN——》发起者【FIN_WAIT_2】【TIME_WAIT】——ACK——>CLOSED&&CLOSED

一个人说就聊到这,然后2个人把正在发和回复的消息处理完,都对对方说了就聊到这。然后连接就断了。

总结与思考

  • 最简化原则:没有足够的事情要做,就不必分层
  • 思考计算机对话和人对话的区别?为什么需要三次握手?

人对话是有上下文context的,计算机之间没有那么多上下文

  • 网络中的顺序问题,TCP协议给了完美的解法,这个方法是可以迁移的。(学算法的价值)

不变量(SEQ,ACK)

你可能感兴趣的:(计算机网络相关,#,网络协议,网络协议,tcp/ip,网络)