TCP/IP协议族
与互联网相关联的协议集合起来总称为TCP/IP。也有说法认为TCP/IP是指TCP和IP这两种协议。还有一种说法认为,TCP/IP是在IP协议的通信过程中,使用到的协议族的统称
TCP/IP分层
TCP/IP协议族按层次分别分为以下4层:
应用层(ftp, dns, http…..)
传输层(tcp, udp)
网络层(ip)
数据链路层
层次化的好处:
当某个地方需要改变设计时,只需把变动的层替换掉即可。把各层之间的接口部分规划好之后,每个层次内部的设计就能够自由改动了
TCP/IP协议族各层的作用
应用层:决定了向用户提供应用服务时通信的活动(ftp, dns, http……)
传输层:对上层应用层,提供处于网络连接中的两台计算机之间的数据传输(tcp, udp)
网络层:处理在网络上流动的数据包,在计算机之间的众多数据传输选项中选择一条传输路线
数据链路层:处理连接网络的硬件部分(硬件设备驱动,网卡,光纤等)
TCP/IP通信传输流
利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则往应用层往上走
过程:
1.作为发送端的客户端在应用层(HTTP协议)发送一个想查看某个web页面的http请求
2.客户端在传输层(TCP协议)把从应用层处收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层
3.在网络层(IP协议),客户端给报文添加作为通信目的地的MAC地址后将其转发给链路层。
4.接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的HTTP请求
客户端在向服务端发送报文时每经过一层,就会给报文打上该层所属的首部信息。反之,服务端在接受报文时,每经过一层就会把对应的首部消去
IP, TCP和DNS
IP
IP协议的作用是把各种数据包传送给对方,为保证确实传送到对方,有两个重要条件:IP地址和MAC地址
IP地址指明了节点被分配的地址,MAC地址是指网卡所属的固定地址
在网络上,两台主机之间通常是经过多台计算机和和网络设备中转才能连接到对方,在进行中转时,会利用下一台中转设备的MAC地址来搜索下一个中转目标,这时会使用到ARP协议,使用ARP地址解析协议可以根据IP地址反查出对应的MAC地址
TCP
TCP位于传输层,提供可靠的字节流服务
为保证可靠的字节流服务,TCP使用三次握手建立连接,握手过程中使用了TCP的标志:SYN和ACK。过程:
1.发送端首先发送一个带SYN标志的数据包给对方
2.接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息
3.发送端再回传一个带ACK标志的数据包,代表“握手”结束
若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包
DNS
DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务
各种协议与http协议的关系
补充
OSI七层模型:
从上往下依次为:应用层》表示层》会话层》传输层》网络层》数据链路层》物理层