模范爸爸 终于有人能把TCP/IP协议讲的明明白白了,太厉害了

从字面意义上讲 , 有人可能会认为TCP/IP是指TCP和IP两种协议 。 实际生活当中有时也确实就是指这两种协议 。 然而在很多情况下 , 它只是利用IP进行通信时所必须用到的协议群的统称 。 具体来说 , IP或ICMP、TCP或UDP、TELNET或FTP、以及HTTP等都属于TCP/IP协议 。
一、计算机网络体系结构分层
不难看出 , TCP/IP与OSI在分层模块上稍有区别 。 OSI参考模型注重“通信协议必要的功能是什么” , 而TCP/IP则更强调“在计算机上实现协议应该开发哪种程序” 。
二、TCP/IP基础1.TCP/IP的具体含义
从字面意义上讲 , 有人可能会认为TCP/IP是指TCP和IP两种协议 。 实际生活当中有时也确实就是指这两种协议 。 然而在很多情况下 , 它只是利用IP进行通信时所必须用到的协议群的统称 。 具体来说 , IP或ICMP、TCP或UDP、TELNET或FTP、以及HTTP等都属于TCP/IP协议 。 他们与TCP或IP的关系紧密 , 是互联网必不可少的组成部分 。 TCP/IP一词泛指这些协议 , 因此 , 有时也称TCP/IP为网际协议群 。
互联网进行通信时 , 需要相应的网络协议 , TCP/IP原本就是为使用互联网而开发制定的协议族 。 因此 , 互联网的协议就是TCP/IP , TCP/IP就是互联网的协议 。
网际协议群
2.数据包
包、帧、数据包、段、消息
以上五个术语都用来表述数据的单位 , 大致区分如下:
包可以说是全能性术语;帧用于表示数据链路层中包的单位;数据表示IP和UDP等网络层以上的分层中包的单位;段则表示TCP数据流中的信息;消息是指应用协议中数据的单位 。每个分层中 , 都会对所发送的数据附加一个首部 , 在这个首部中包含了该层必要的信息 , 如发送的目标地址以及协议相关信息 。 通常 , 为协议提供的信息为包首部 , 所要发送的内容为数据 。 在下一层的角度看 , 从上一层收到的包全部都被认为是本层的数据 。
数据包首部
网络中传输的数据包由两部分组成:一部分是协议所要用到的首部 , 另一部分是上一层传过来的数据 。 首部的结构由协议的具体规范详细定义 。 在数据包的首部 , 明确标明了协议应该如何读取数据 。 反过来说 , 看到首部 , 也就能够了解该协议必要的信息以及所要处理的数据 。 包首部就像协议的脸 。
3.数据处理流程
下图以用户a向用户b发送邮件为例子:
数据处理流程
①应用程序处理
首先应用程序会进行编码处理 , 这些编码相当于OSI的表示层功能;
编码转化后 , 邮件不一定马上被发送出去 , 这种何时建立通信连接何时发送数据的管理功能 , 相当于OSI的会话层功能 。
②TCP模块的处理
TCP根据应用的指示 , 负责建立连接、发送数据以及断开连接 。 TCP提供将应用层发来的数据顺利发送至对端的可靠传输 。 为了实现这一功能 , 需要在应用层数据的前端附加一个TCP首部 。
③IP模块的处理
IP将TCP传过来的TCP首部和TCP数据合起来当做自己的数据 , 并在TCP首部的前端加上自己的IP首部 。 IP包生成后 , 参考路由控制表决定接受此IP包的路由或主机 。
④网络接口(以太网驱动)的处理
从IP传过来的IP包对于以太网来说就是数据 。 给这些数据附加上以太网首部并进行发送处理 , 生成的以太网数据包将通过物理层传输给接收端 。


推荐阅读