TCP、IP 参考模型(记录)

TCP/IP

TCP/IP是目前最成功、使用最频繁的互联协议。
一个完整的TCP/IP应用数据包分为四层,分别是网络访问层(Network Access)、网际层(Internet)、传输层(Transport)、应用层(Application)。

OSI模型和TCP/IP模型关系对比图如下:

网络访问层

网络访问层的功能包括IP地址与物理硬件地址映射,以及将IP分组封装成帧。基于不同硬件类型的网络接口,网络访问层定义了和物理介质的连接。网络访问层包含了数据链路层的地址,如用在以太网上就是MAC地址。
该层是TCP/IP模型的最底层,负责接收IP层传来的IP数据报,并将数据报通过低层物理网络发出去,或者从底层物理网络上接受物理帧,解封装出IP数据报,交给IP层处理。

网际层

网际层主要功能包括三个方面:
1.处理来自传输层的额分组发送请求: 将分组装入IP数据报,填充报头,选择去往目的的结点路径,然后将数据报法网适当的网络接口。
2.处理输入数据报: 首先检查数据报的合法性,然后进行路由选择,加入该数据报已到达目的结点(本机),则去掉报头,将IP报文的数据部分交给相应的传输层协议;假如该数据包尚未到达目的结点,则转发该数据报。
3.处理ICMP(Internet Control Message Protocol,网际控制信息协议)报文: 处理网络的路由选择、流量控制和拥塞控制等问题
网际层的协议如下:

  • IP协议

    I P的责任就是把数据从源传送到目的地,不提供可靠的传输服务,不提供端到端的或结点都结点的确认,对数据没有差错控制,它只使用报头的校验码,它不提供重发和流量控制。如果出错可以通过 ICMP 报告,ICMP 在IP模块中实现。

  • ICM (Internet Control Message Protocol,Internet控制消息协议)

    它是TCP/IP协议的一个子协议,用于在IP主机、路由器之间传输控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对用户数据的传递起着重要的作用。
    在基于IP数据报的网络体系中,IP协议自身没有内在机制来获取差错信息并处理。为了处理这些错误,TCP/IP 设计了ICMP协议,当某个网关发现传输错误时,立即向信源主机发送ICMP报文,报告出错信息,让信源主机采取相应的处理措施,它是一种差错和控制报文协议,不仅用于传输差错报文,还传输控制报文。

  • ARP (Address Resolution Protocol,地址解析协议)

    ARP 负责将某个IP地址解析成对应的MAC地址。在局域网中,网络中实际传输的是帧,帧里面是有目标主机的MAC地址的。在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。这个MAC地址就是通过地址解析协议获得的。所谓“地址解析“ 就是主机在发送帧前根据目标IP地址得出目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

  • Proxy ARP (代理ARP)

    代理ARP是ARP协议的一个变种。 对于没有配置缺省网关的计算机要和其他网络中的计算机实现通信,网关收到源计算机的 ARP 请求会使用自己的 MAC 地址与目标计算机的 IP地址对源计算机进行应答。代理ARP就是将一个主机作为对另一个主机ARP进行应答。它能使得在不影响路由表的情况下添加一个新的Router,使得子网对该主机来说变得更透明化。同时也会带来巨大的风险,除了ARP欺骗,和某个网段内的ARP增加,最重要的就是无法对网络拓扑进行网络概括。代理ARP的使用一般是使用在没有配置默认网关和路由策略的网络上的。

  • RARP (Reverse Address Resolution Protocol,反向地址转换协议)

    反向地址转换协议(RARP)允许局域网的物理机器从网关服务器的 ARP 表或者缓存上请求其 IP 地址。网络管理员在局域网网关路由器里创建一个表以映射物理地址(MAC)和与其对应的 IP 地址。当设置一台新的机器时,其 RARP 客户机程序需要向路由器上的 RARP 服务器请求相应的 IP 地址。假设在路由表中已经设置了一个记录,RARP 服务器将会返回 IP 地址给机器,此机器就会存储起来以便日后使用。 RARP 可以使用于以太网、光纤分布式数据接口及令牌环 LAN

传输层

在TCP/IP网络中,IP采用无连接的数据报机制,对数据尽心”尽力而为的传递“,即只管将报文尽力传送到目的主机,无论传输正确与否,不做验证,不发确认,也不保证报文的顺序。TCP/IP的可靠体现在传输层,传输层协议之一的TCP协议提供面向连接的服务 ( 传输层的另一个协议UDP是无连接的) 。传输层的主要功能是可靠而又准确地传输并控制源主机与目的主机之间的信息流,提供端到端的控制,通过滑动窗口机制提供流控制,通过序列号和确认机制来保证可靠性。TCP传输控制协议发送数据分段时,可以保证数据的完整性。

可靠传输可以通过下列方法实现:
  • 接收方对收到的数据分段向发送方进行确认;

  • 发送方向接收方重传所有未被确认的数据分段;

  • 在目的端将数据分段按正确的顺序重组,并删除重复的数据分段;

  • 提供避免和控制拥塞的机制。

    • 1、TCP
      TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的传输层协议,能提供可靠的数据传输。在面向连接的环境中,开始传输数据之前,端点之间先要简历连接。TCP负责将消息拆分成数据分段,重传丢失的数据分段并将数据分段在目的主机重组成消息。
      TCP/IP协议常用的协议如图所示,其中使用TCP的应用层协议有FTP、HTTP、SMTP、POP3、Telnet和DNS等,使用UDP的协议有DNS和TFTP等。

    • 2、UDP
      UDP( User Datagram Protocol,用户数据报协议) 是TCP/IP协议栈中无连接的传输协议,UDP是一种简单协议。它交换数据报没有确认机制或传输保证,错误处理或重传机制必须由上层协议来完成。

    • 3、三次握手
      三次握手协议指的是在发送数据的准备阶段,服务器端和客户端之间需要进行三次交互:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。连接建立后,客户端和服务器就可以开始进行数据传输了。
      为了提供可靠的传送,TCP 在发送新的数据之前,以特定的顺序将数据包的序号,并需要这些包传送给目标机之后的确认消息。TCP 总是用来发送大批量的数据。当应用程序在收到数据后要做出确认时也要用到TCP。

    • OSI参考模型中的网络层,在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

      • 第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;

      • 第二次握手:服务器收到syn包,必须确认客户的syn(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;

      • 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

    • 4、滑动窗口 参考:(https://www.cnblogs.com/luoquan/p/4886345.html)

    • 5、确认机制 : TCP 在传输前,需要对每个数据分段进行编号。接收端主机将数据分段重组成完整信息,TCP 必须恢复由Internet 通信系统导致的数据损坏、丢失、重复或乱序。TCP 通过为传输的每个字节指定序号,并且要求接收端TCP的主动确认(ACK)来实现。

应用层

应用层包括所有的高层协议,与 OSI 的应用层协议相差不大,包括HTTP(超文本传输协议,使用TCP 的端口80)、Telnet(远程登录协议,使用TCP的端口23)、FTP(文件传输协议,使用TCP的端口21)、SMTP(简单邮件传输协议,使用TCP的端口25)、POP3(邮件3协议,使用TCP的端口110)、DNS(域名服务,使用UDP和TCP的端口53)等。


TCP、IP 参考模型(记录)
http://yoursite.com/post/1e739487.html/
Author
Chase Wang
Posted on
March 29, 2019
Licensed under