百度百科定义网络协议:网络上设备间的通信规则,规定了通信时信息必须采用的格式和这些格式的意义。
我自己是把协议理解成提供某种服务的接口,规定了该接口的功能以及接收哪些数据和发送哪些数据以及发送到哪。
tcp/ip协议分四层,把运用层作为最高层,主机到网络层作为最底层,发送端通过一层增加一个头部接收端通过一层减少一个头部。每一层调用下一层提供的服务接口。
运用层协议:提供各种运用程序的接口,比如www服务的HTTP //http是基于tcp协议并设计成短连接
传输层协议:提供端到端连接服务的接口(TCP和UDP),socket可以理解成封装了多个传输层接口(包括tcp和udp),并提供了一系列API,简化了网络通信的开发。使用socket通信相当于跳过应用层直接使用ip及端口号和进程通信,并没有规定连接后断开,所有客户端和服务器可保持连接通道,双方都可主动发送数据。
网络互联层协议:提供寻址和路由选择服务的接口(IP)
数据链路层协议:提供数据分组服务的接口
物理层协议:提供数据与二进制间转换并收发服务的接口
运用层:提供多种服务类型(安全的还是不安全的,长期的还是短期的,有响应的还是没响应的,单向还是双向的......)
传输层:建立通道(再次说明,每一层调用下一层提供的服务,这里根据上一层选择的服务,建立相应的通道)
网络层:明确目的地和路径
数据链路层和物理层:快速送达
TCP协议将任何网络信息传输当作信息流。例如,机器A上的一个长报文发送到机器B,发送端A需要将数据分片,把一片片数据分别打包发送。数据包有一个头,指明该数据包发往何处、包中数据在接收序列中所处的位置。每个包都按照IP地址提供的目的地从一个台机器传送到另一台机器,或从一个网络节点传送到另一个网络节点。在接收端B,这些数据包都能够按照正确的顺序重新组装起来。