TCP/IP协议和互联网协议群

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

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

 

作用

封包
应用层(Application)

OSI的应用层、表示层、会话层

抽象用户的数据,提供顶层的API

提供应用间的通信能力

HTTP 协议

数据  (程序员自己定义的格式)

传输层(Transport)

点到点的传输,端口号

端口号 对应的是应用,源port,目标port,eg:80-http协议

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

TCP/UDP 协议

TCP Header + TCP数据  (数据转换)

网络层(Internet)

像物流公司一样,将你的分包从一个IP地址送到另一个IP地址

IP地址指位置编号,源IP,目标IP

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

IP 协议

IP Header + IP数据  (传输层的数据到了网络层,会被切成更小的片段)

IP封包:源IP地址 | 目标IP地址 | 协议 |···| 数据(源端口 | 目标端口 | ··· |数据) ---TCP封包

链接层(Link)

提供设备到设备之间的通信能力,Mac地址

Mac地址指设备编号,源Mac,目标Mac

多种底层网络协议Etherner,Wi-Fi,···

Frame Header + Frame Data + Frame Footer  (二进制)

物理层(Pysical) 光电信号的传输  

  完成的TCP协议头

源端口(source port) 目标端口(destination port)
序号(sequence number)
确认序号(acknowledgedgement number)
Data Offset Reserved  标识位 窗口大小(window size)
检验和(Checksum) 紧急指针(Urgent Pointer)
可选项

  TCP协议封包

    · 每个封包称作以恶搞TCP信息段(TCP Segment)

    · Header 用于描述传输行为(如源端口,目标端口等)

    · Header 后面跟若干个byte数据,每个byte拥有自己的序列号

三次握手 

  建立连接为什么需要3次握手?

    异常情况、

  数据顺序问题?

传输和处理数据顺序 

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

      使用发送、接收时间 - 服务器时间差异如何解决?

      使用自增序号?- · a-b-a-b类型会话可以解决?· a-(ab)-b类型会话如何解决?

    TCP/IP 协议处理方法?

      消息的绝对顺序用(SEQ、ACK)这一对元组描述

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

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

挥手(终端连接)

  四次挥手

 

思考?

  · 最简化原则:没有足够的事情要做,就不必分层

  · 及其对话、人对话

posted @ 2020-12-26 18:01  SlightFly  阅读(211)  评论(0编辑  收藏  举报