TCP/IP协议族

简介

计算机与网络设备要相互通信,双方必须基于相同的方法。如,如何探测到目标,使用哪种语言进行通信等,所有的这一切都需要一种规则,这种规则称为协议。

协议中存在各式各样的内容,如从电缆规格到IP地址的选取方法寻找异地用户的方法等。与互联网相关联的协议集合,称为TCP/IP。

TCP/IP的分层管理

为了方便管理和改动,TCP/IP协议族按层次分为以下四层:

  • 应用层

    决定了向用户提供应用服务时的通信活动。

    FTP(File Transfer Protocol,文件传输协议),DNS(Domain Name System,域名系统),HTTP(Hyper Transfer Potocol, 超文本传输协议)均处于改层。

  • 传输层

    提供处于网络连接中两台计算机之间的数据传输。

    TCP(Transmission Control Protocol,传输控制协议),UDP(User Data Protocol,用户数据报协议)处于该层。

  • 网络层

    应用层用来处理网络上流动的数据包。数据包是网络传输的最小单位。

    该层规定了提供怎样的路径到达对方计算机,并把数据包传给对方。
    IP(Internal Protocol,网际协议)位于该层。

  • 数据链路层

    用来处理连接网络的硬件部分。包括控制操作系统,硬件的设备驱动,网卡,光纤的可见部分。

    TCP/IP通信传输流

    利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则从链路层往上走。

用 HTTP 举例来说明,首先作为发送端的客户端在应用层(HTTP 协议)发出一个想看某个 Web 页面的 HTTP 请求。

接着,为了传输方便,在传输层(TCP 协议)把从应用层处收到的数据(HTTP 请求报文)进行分割,并在各个报文上打上标记序号及端口号后转发给网络层。

在网络层(IP 协议),增加作为通信目的地的 MAC 地址后转发给链路层。这样一来,发往网络的通信请求就准备齐全了。

接收端的服务器在链路层接收到数据,按序往上层发送,一直到应用层。

当传输到应用层,才能算真正接收到由客户端发送过来的 HTTP 请求。

发送端在层与层之间传输数据时,每经过一层时必定会被打上一个该层所属的首部信息,反之,接收端在层与层传输数据时,每经过一层时会把对应的首部消去。这种做法称为封装(encapsulate)。

IP协议

IP协议的作用是把各种数据包传送给对方,其中重要的条件是IP地址和MAC地址。

IP地址指明节点被分配到的地址,MAC地址指网卡所属的固定地址。IP地址和MAC地址可以进行配对。

IP间的通信依赖MAC地址,通信双经常是经过多台计算机和网络设备中转才能连接到对方。而中转采用ARP协议。

ARP协议是一种用来解析地址的协议,根据通信方的IP地址反查出MAC地址。

TCP协议

TCP协议提供可靠的字节流服务。TCP协议为了容易传输大数据将数据分割,而且能够准确的确认数据最终是否送达到对方。

TCP采用三次握手(three-way-handshaking)策略。握手过程使用TCP的标志(flag)———SYN(synchronize)和ACK(acknowledgement)。

发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后,发送端再回传一个带ACK标志的数据包,代表握手结束。

DNS协议

DNS服务提供域名到IP地址之间的解析服务。DNS协议提供通过域名查找IP地址,或逆向从IP地址查找域名的服务。

URI和URL

URI统一资源标示符,表示由某个协议方案表示的资源的定位标示符。而URL表示资源的地址。

URL格式:
URL格式

各种协议和HTTP协议的关系

当客户端向某一个网址发起请求时,会向DNS查询这个域名的IP地址。

接着HTTP协议生成针对WEB目标服务器的HTTP请求报文。

为了方便通讯,TCP协议按序号将HTTP请求报文分割成报文段,采用三次握手把每个报文段可靠地传给对方。

路由器根据IP协议,搜索对方的地址,一遍中转一遍传送。

当对方接受到数据包时,根据TCP协议,将从对方那里接受到的报文段,按序号以原来的顺序重组报文。

接着HTTP协议再对WEB服务器请求的内容进行处理,在发送给服务器,服务器处理完的结果也同样利用TCP/IP通讯协议向客户端回传。