传输层协议——TCP协议
- 认识IP地址
- TCP/IP的分层管理
- TCP/IP分层通信示例(发送数据包)
认识IP地址
IP地址属于网络层地址
在计算机通信中,为了识别通信对端,必须有一个类似于地址的识别码进行标识。IP地址用于在连接到网络中的所有主机中识别出进行通信的目标地址。
IP地址(IPv4)由32位正整数来表示。TCP/IP通信要求将这样的IP地址分配给每一个参与通信的主机。IP地址在计算机内部以二进制方式被处理。一般表示为点分十进制。
例:
点分十进制: 172.20.1.1
二进制表示法:10101100 00010100 00000001 00000001
IP属于面向无连接型
- IP面向无连接。 即在发包之前不需要建立与对端目标地址之间的连接。上层如果遇到需要发送给IP的数据,该数据会立即被处理成IP包发送出去。
- 在面向有连接的情况。 需要事先建立连接,如果对端主机不存在,也就不可能建立连接。
- 在面向无连接的情况。 不管你对端的主机是否存在或者关机,数据包还是会被发送出去。
- IP采用无连接的原因: 一是为了简化,二是为了提速。
TCP/IP的分层管理
TCP分层协议族按层次分别分为应用层、传输层、网络层、数据链路层、物理层 当然也有按不同的模型分层的。
TCP分层的原因:
- 独立性高。 每一层只负责完成自己的任务即可
- 管理性好。 当我们发现那一层不需要时甚至可以将其删除,不会影响其功能。
1.应用层:
满足我们日常需求的网路程序都在应用层
2.传输层:
负责数据能够从发送端传输到接收端
3.网络层:
在复杂的网络环境中确定一个路径
4.数据链路层:
两个设备(同一种数据链路节点)之间进行传递数据
5.物理层:
负责比特流在节点之间的传输,即负责物理传输
TCP/IP分层通信示例(发送数据包)
数据包首部:
发送数据包:
假设甲给乙发送电子邮件,内容为:“早上好”。而从TCP/IP通信来看,是从一台计算机A向另一台计算机B发送电子邮件。我们从上述例子来讲解一下TCP/IP通信过程。
- 应用程处理
启动应用程序,将收件人邮箱填好,再由键盘输入邮件内容“早上好”,鼠标点击“发送”按钮就可以开始TCP/IP的通信了。
应用在发送邮件时的那一刻建立TCP连接,而从利用这个TCP连接发送数据。它的过程 首先是将应用的数据发给下一层TCP,在做实际的转发处理。
- 传输层TCP的处理
TCP根据应用的指示,负责建立连接、发送数据以及断开连接。TCP提供将应用层发来的数据顺利发送至对端的可靠传输。
为了实现TCP这一功能,需要在应用层数据的前端附加一个TCP首部。TCP首部中包括源端口和目标端口号(用以识别发送主机跟接收主机上的应用)、序号(用以发送的包中那部分是数据)以及校验和(用以判断数据是否被损坏)。随后附加TCP首部的包再以发送给IP。
- 网络层IP处理模块
IP将TCP传来的TCP首部和TCP数据合起来当做自己的数据,并在TCP首部的前端在加上自己的IP首部。因此,IP数据包中IP首部后面紧跟着TCP首部,然后才是应用首部和数据本身。IP首部包含接收端IP地址以及发送端IP地址。紧随IP首部的还有用来判断其后面数据是TCP还是UDP的信息。
IP包生成后,参考路由控制表决定接收此IP包的路由或者主机。随后,IP包将被发送给连接这些路由器或主机网络接口的驱动程序,以实现真正发送数据。
如果尚不知道接收端的MAC地址,可以利用ARP(Address Resolution Protocol)查找。只要知道对端的MAC地址,就可以将MAC地址和IP地址交给以太网驱动程序,实现数据传输。
- 数据链路层的处理
从IP传过来的IP包,对于以太网驱动程序来说不过就是数据。给这数据附加上以太网首部并进行发送处理。以太网首部中包含接收端MAC地址、发送端MAC地址以及标志以太网类型的以太网数据的协议。根据上述信息产生的以太网数据将通过物理层传输给接收端。发送处理中的FCS由硬件计算,添加到包的最后。设置FCS的目的是为了判断数据包是否由于噪声而被损坏。
- 物理层处理
物理主要负责将数据通过以太网电缆进行传输。
注意:
逆过程则是拆包的过程。
<参考文献>
《图解TCP/IP》