TCP/IP的具体含义
TCP/IP实际上我们所说的是指TCP/IP==协议群==
互联网基础知识
互联网一次原指网际网,意思连接一个又一个网络。
TCP/IP协议分层模型
- 物理层(硬件):负责数据传输的硬件
- 网卡层
- 互联网层
- 传输层
- 应用层
IP:
IP是跨越网络传送数据包,使整个互联网都能收到数据的协议。IP协议使数据能够发送到地球的另一端,这期间它使用IP地址作为主机的标识。
ICMP:
IP数据包在发送途中一旦发生异常导致无法到达对端目标地址时,需要给发送端发送一个发生异常的通知。ICMP就是为这一功能而制定的。它有时也被用来诊断网络的健康状况。
ARP:
从分组数据包的IP地址中解析出物理地址的一种协议。
TCP:
TCP是一种面向有连接的传输层协议。它可以保证两端通信主机之间的通信可达。TCP能够正确处理在传输过程中丢包,传输顺序乱掉等异常情况。此外TCP还能够有效利用带宽,缓解网络拥堵。
UDP:
UDP有别于TCP,它是一种面向无连接的传输协议,UDP不会关注对端是否真的收到了传送过去的数据,如果想知道,则需要在应用程序中实现。
TCP/IP分层模型与通信示例
包:全能性术语。
帧:表示数据链路层中包的单位。
数据包:IP/TCP等网络层以上的分层中包的单位。
段:TCP数据流中的信息。
消息:应用协议中数据的单位。
==包首部就像是协议的脸==
数据包由两个部分组成:
1.协议所用到的首部
2.上层传过来的数据
发送数据包过程:
假设A给B发送电子邮件,内容为“早上好”。
1.应用程序处理:应用在发送邮件的那一刻建立TCP连接,从而利用这个TCP连接发送数据。
2.TCP模块的处理:TCP根据应用的提示,负责建立连接,发送数据以及断开连接,为了实现TCP的这一功能,需要在应用层数据的前端附加一个TCP首部。TCP首部包括源端口号和目标端口号(用以识别发送主机跟接受主机上的应用),序号(用以发送的包中哪部分是数据)以及校验和(用以判断数据是否被破坏)。随后将附加了TCP首部的包再发给IP。
3.IP模块的处理:IP将TCP传过来的数据的前部加上自己的IP首部。IP首部中包含接受端的IP地址以及发送端IP地址,紧跟着IP首部的还有用来判断其后面的数据是TCP还是UDP。
如果尚不知道接收端的MAC地址,可利用ARP查找,只要知道了对端的MAC地址,就可以将MAC地址和IP地址交给以太网的驱动程序,实现数据传输。
4.网络接口(以太网驱动)的处理:从IP传过来的IP包,对于以太网驱动来说不过就是数据,给这个数据附加上以太网首部并进行发送处理。以太网首部中包含接受端的MAC,发送端MAC地址以及标志以太网类型的以太网数据的协议。根据上述信息产生的以太网数据包将通过物理层传输到接收端。
接收数据包的过程
==包的接受过程是发送过程的逆序处理==
5.网络接口(以太网驱动)的处理:主机收到以太网包以后,首先从以太网的包首部找到MAC地址判断是否为发给自己的包。如果不是则丢弃数据。
若果是则判断以太网协议所传送过来的数据类型,IP则传到IP子程序,ARP则交给ARP处理。如果是无法识别的协议类型,则丢弃数据。
6.IP模块的处理:IP收到数据包后做出同样的操作,判断上一层的协议,是TCP还是UDP。
7.TCP模块的处理:在TCP模块中,首先会计算一下校验和,判断数据是否被破坏;然后检查是否按照序号接收数据,最后检查端口号,确定具体的应用程序。
8.应用程序的处理:顺利接收邮件“早上好”。