一 、网络接口:SLIP和PP
串行线路接口协议(SLIP)和点对点协议(PPP)。
链路控制协议(LCP):在两个设备能使用链路之前,它们必须对如何使用该链路达成一致。为此,需要在链路建立期间协商一系列的链路参数。LCP提供建立、维护和终止两个设备之间链路的机制。
网络控制协议(NCP):PPP是为支持几个第三层协议而设计的,有些第三层协议在使用链路之前可能需要额外的设置。为了在使用链路前按需要进行配置,每个第三层协议都会调用一个特定的NCP。
以太网是最常用的LAN技术,这些LAN提供自己的物理层和数据链路层,使TCP/IP能运行其上。而SLIP和PPP是为这些没有自己的数据链路层实现技术而设计的。
串行线路网际协议(SLIP)非常简单,只提供封装IP数据报所需要的定界功能和两个特殊字符的透明性,缺少几个实用中所需要的功能。
点对点协议时一个功能完备的串行线路协议,它提供了用于同步和异步串行线路的数据链路层。其功能包括封装、错误检测、认证、压缩、加密、链路质量监视以及多链路支持选项。
为了使两个设备能用PPP连接进行数据交换,必须存在一个物理连接,链路控制协议(LCP)在该物理连接上建立自己的“虚电路”。一旦该LCP链路建立起来,在认证阶段结束后,每个要使用PPP链路的第三层协议都必须建立自己的“虚电路”。
PPP链路的生命周期包括:链路死亡、链路建立(LCP)、认证(PAP、CHAP)、网络(NCP)和链路终止。
二 网际层:IP和ICMP
网际协议位于网际层,为运输层(UDP和TCP)提供服务,并从网络接入层(LAN驱动程序、SLIP和PPP)请求服务。
IP层必须提供一种将数据帧从某个LAN中一个设备运输到一个远程LAN中另一设备的方法。为了使IP层能完成这一工作,需要具备下述几个功能:IP封装、IP分片/重组、IP编址、IP交付和路由。
由于互联网是由很多使用不同技术的网络互相连接组成的,IP数据报要通过这些互相连接的网络,所以它们会被封装成差异很大的帧。此外,每种技术都有自己的帧格式和特点。这些差异之一就是帧能承载的最大数据长度,也称为最大运输单元(MTU)。
Internet控制报文协议(ICMP):为了使IP能提供这一数据传送服务,需要进行一些管理和维护工作,即IP层需要检测某些错误条件,还要从虚网的其他结点获取信息。该协议为“内部IP层通信”提供一个维护、诊断和测试框架。
每个设备都有两种不同的网络地址:用于本地物理网络的物理地址和用于虚网的IP地址。物理地址用于在本地物理网络中运输数据帧;IP地址用于将数据报从一个网络传送到另一个网络,即穿越“虚拟”的互联网。(ARP、RARP)。
IP层负责在“虚网”或互联网上进行报文交付。直接交付由数据链路层在本地网络完成。间接交付由路由器完成,路由器将报文从一个网络传送到另一个网络,直到报文到达目的网络,通过直接交付被传送给接收主机。路由器根据路由表中的信息决定传送报文的最佳路径。路由器之间互相通信,交换有关路由及使用路由协议方面的信息。
三、运输层:UPD和TCP
任何运输层首部只出现在第一片数据中。
IP数据报是指IP层端到端的传输单元。
分组是指在IP层和链路层之间传送的数据单元。一个分组可以使一个完整的IP数据报,也可以使IP数据报的一个分片。
TCP提供一种面向连接的、可靠地字节流服务。
在一个TCP连接中,仅有两方进行彼此通信。
应用数据被分割成TCP认为最适合发送的数据块。
当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。
当TCP收到发自TCP连接另一端的数据,它将发送一个确认。
TCP将保持它首部和数据的检验和。
如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。
TCP的接收端必须丢弃重复的数据。
TCP还能提供流量控制。
TCP对字节流的内容不作任何解释,它不知道传输的数据字节流是什么。对字节流的解释由TCP连接双方的应用层解释。
重传机制包括下面的过程:
对每个发送的报文段,启动一个为它分配的定时器,并将该报文段的副本保存到重发队列中。
如果在相应的定时器溢出之前收到了该报文段的确认,则将该报文从重发队列中删除。
如果定时器溢出时确认报文段还未到达,则该报文段被自动重发。其定时器重新启动,报文段仍保存在重发队列中,直到接收到一次成功的确认。
如果在进行了多次连续的重发后仍然没有收到确认报文段,软件可认为在网络的某处存在持久性的问题而终止连接,并向应用报告。
当TCP接收到一个带有PUSH标志的报文段时,它需要立即将这些数据递交给服务器进程而不能让其留在数据缓存中等待是否还有其它的额外数据到达。
四、协议数据封装格式
数据帧:帧头+IP数据包+帧尾(帧头包括源和目标主机MAC地址及类型,帧尾是校验字)。
IP数据包:IP头部+TCP数据信息(IP头包括源和目标主机IP地址、类型、生存期等)。
TCP数据信息:TCP头部+实际数据(TCP头包括源和目标主机端口号、顺序号、确认号、校验字等)。
UDP头结构和各域的大小:
五、IP地址格式
IPV4地址格式:
32位地址,采用点分八位的形式。
A类地址(1.0.0.1---126.255.255.254):使用第一个8位位组表示网络地址。剩下的3个8位位组表示主机地址。A类地址的第一个位总为0。
B类地址(128.0.0.1---191.255.255.254):使用两个8位位组表示网络号,另外两个8位位组表示主机号。B类地址的第1个8位位组的前两位总置为10,剩下的6位既可以是0也可以是1。
C类地址(192.0.0.1---223.255.255.254):使用三个8位位组表示网络地址,仅用一个8位位组表示主机号。C类地址的前3位数为110。
D类地址(224.0.0.1---239.255.255.254):D类地址的前4位恒为1110。
E类地址(240.0.0.1--247.255.255.254):E类地址虽被定义但却为IETF所保留作研究之用。E类地址的前4位恒为1。
子网掩码(子网掩码既不能作为IP地址使用,也不能单独存在,必须结合IP地址一起使用):子网掩码是可用点-十进制数格式表示的32位二进制数,掩码告诉网络中的端系统IP地址的多少位用于识别网络和子网。这些位被称为扩展的网络前缀。剩下的位标识子网内的主机,掩码中用于标识网络号的位置为1,主机位置为0。
网段:网络号相同的主机处于同一网段中,同一网段中不允许有主机号相同的主机。
计算方法:首先查看各自IP子网掩码中1的个数,假设为N1,N2。然后比较各自IP中前N1位和N2位是否相同。如果相同则处在同一网段中。
网关:首先判断两个网络中的主机是否处在不同的网络里。如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关在转发给网络B的某个主机。