TCP/IP协议的简单认知

以下知识来源于太厉害了,终于有人能把TCP/IP协议讲的明明白白了! - 51CTO.COM

本文是笔者的归纳,从而方便自我理解

1.TCP/IP在很多情况下,是指利用IP进行通信时所必须用到的协议群的统称-->IP,ICMP,TCP,UDP.HTTP等都属于TCP/IP协议。因此TCP/IP≈网际协议群

2.互联网进行通信时,需要对应的网络协议,TCP/IP就是为了使用互联网而开发指定的协议 互联网的协议就是TCP/IP,TCP/IP就是互联网的协议

3.新概念:数据包

包、帧、数据包、段、消息

  • 包相当于是全能型术语
  • 帧是用于表示数据链路层中包的单位
  • 数据包是IP和UDP等网络层以上的分层中包的单位
  • 段则表示TCP数据流中的信息
  • 消息是指应用协议中数据的单位

4.数据传输经历的流程

每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。通常,为协议提供的信息为包首部,所要发送的内容为数据。在下一层的角度看,从上一层收到的包全部都被认为是本层的数据。

(1)简要解释:

这个我是怎么理解的呢:我们可以把这些当作一个又一个快递手。如果用户A要给用户B发消息“HELLO”,这个消息就相当于纸封,由用户A从应用层 造出来,然后被送往了传输层(Transport Layer),传输层会进行包装,纸封被包上了一层袋子,上面写着TCP包裹,紧接着被送往了网络层( Internet Layer),网络层又会进行一次套袋子,上面写着IP包裹,然后被送往了数据链路层(Network Access Layer),上面写着以太网包裹,这样打包过程完成

通过以太网电缆(快递公路)送往了用户B所在的区域,先给了数据链路层,解包,拆掉了以太网包裹,IP包裹他无权拆开,被送往了网络层进行解包,然后就是传输层解包,最后的信封就被完好的送往了用户B的应用层。用户B就看到了完好无损的“HELLO”

如图:

TCP/IP协议的简单认知

图源:太厉害了,终于有人能把TCP/IP协议讲的明明白白了! - 51CTO.COM

(2)包装方式:

  • 应用层处理: “HELLO”信息发出后,应用程序需要对信息进行编码,可以类比base64编码,转换成一种合适编码形式
  • 传输层处理: TCP负责建立连接、发送数据和断开连接。TCP通过网络层和数据链路层将顺利的把应用层送来的编码给发给用户B的传输层
  • 网络层处理: 通过IP查找对应的机器,用户B看IP地址是否匹配,匹配就进行解包
  • 数据链路层处理:物理层的索引,通过物理层相互传输,

5.TCP/UDP

        TCP可靠性传输 UDP不具有可靠性。TCP传输层有必要实现可靠性传输,UDP用于对高速传输和实时性由较高要求的通信和广播通信。

  • UDP 不提供复杂的控制机制,利用 IP 提供面向无连接的通信服务。
  • 并且它是将应用程序发来的数据在收到的那一刻,立即按照原样发送到网络上的一种机制。即使是出现网络拥堵的情况,UDP 也无法进行流量控制等避免网络拥塞行为。
  • 此外,传输途中出现丢包,UDP 也不负责重发。
  • 甚至当包的到达顺序出现乱序时也没有纠正的功能。
  • 如果需要以上的细节控制,不得不交由采用 UDP 的应用程序去处理。
  • UDP 常用于一下几个方面:1.包总量较少的通信(DNS、SNMP等);2.视频、音频等多媒体通信(即时通信);3.限定于 LAN 等特定网络中的应用通信;4.广播通信(广播、多播)。

 

  • TCP 与 UDP 的区别相当大。它充分地实现了数据传输时各种控制功能,可以进行丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。而这些在 UDP 中都没有。
  • 此外,TCP 作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。
  • 根据 TCP 的这些机制,在 IP 这种无连接的网络上也能够实现高可靠性的通信( 主要通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现)。

三次握手和四次挥手引用的文章里也都有提到,上文基本了解了后续理解将方便许多!

互联网知识浩瀚若沿海,有缘来此的诸君,我们一起加油!

 

上一篇:JAVA网编个人总结——UDP


下一篇:软件设计是怎样炼成的(4)——软件设计的“大道理”