网络协议(network protocol)
简称为协议,是为进行网络中的数据交换而建立的规则、标准或约定。 网络协议通过分层明确每一层的工作职责,通过定义明确的接口来协同工作,每一层都可以使用下面各层的功能,而不必担心各层是如何实现的。
TCP/IP协议族
TCP/IP协议簇是Internet的基础,也是当今最流行的组网形式。TCP/IP是一组协议的代名词,包括许多别的协议,组成了TCP/IP协议簇。
其中比较重要的有SLIP协议、PPP协议、IP协议、ICMP协议、ARP协议、TCP协议、UDP协议、FTP协议、DNS协议、SMTP协议等。
TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。
TCP/IP协议族分为四层:
应用层:提供特定于应用程序的协议
(比如负责浏览器和网络服务器相互通信的HTTP协议、负责文件传输的FTP协议、负责电子邮件客户端检索邮件的IMAP协议)
TCP传输控制层:发送数据包到计算机上使用特定端口号的应用程序
IP网络层:使用IP地址将数据包发送到特定的计算机
链路层:将二进制数据包与网络信号相互之间转换
(1)IP
IP是不可靠、无连接的协议,它并不关心数据包是否到达目的地,也不关心连接和端口号,IP的工作是发送数据包并将其路由到目标计算机,其中每个数据包都是独立的互不依赖的,所以有可能会乱序到达目标地址或者在传输途中丢失.
那如何保证数据包到达和顺序正确呢?
这就交给了TCP,这也体现了分层的作用。TCP的工作是确保数据包到达并保持正确的顺序。IP与TCP的唯一共同之处在于它接收数据并将自己的IP首部信息添加到TCP数据。当数据包过大时,在IP层会进行分包,由于每个数据包在物理链路层走的物理链路不一样,传输速度也不一样,导致数据包没有按顺序到达目的地,但TCP会根据数据包上携带的序列号来进行排序重组,