TCP/IP笔记

TCP/IP学习笔记

1. TCP/IP概述

互联网的目的就是要隐藏底层网络的硬件细节,同时提供一般的服务通信。

网际互连的方式

应用级互联

实质:

应用程序完全了解本机器网络连接的内部细节,并直接通过网络连接与其它应用程序通信。应用程序直接建立在物理网络上,无任何中间协议。

应用级别互联

缺陷:

  1. 每台计算机上都要有所需的应用程序
  2. 硬件变动后,应用程序要做出相应的修改
  3. 每个应用程序都要了解本机的所有网络连接,造成代码重复

网络级互联

思想:把通信部分独立出来

方法:在低层网络技术与高层应用程序之间增加一个中间层软件,以便抽象和屏蔽硬件细节,向用户提供通用网络服务。

网络级互联

优势:

  1. 把数据通信活动从应用程序中分离出来,允许中间的计算机直接处理网络通信,而不必了解发送双方 的应用程序
  2. 系统更加灵活,因此可以建立通用的通信工具
  3. 如果出现新的网络技术,只要修改或者增加新的网络层软件而不需要修改上层应用程序

TCP/IP 的引入

问题? 数据格式不同,地址不同如何进行通讯。

解决办法:引入IP层,屏蔽不同物理网络技术的差别;引入IP路由器

IP层
在这里插入图片描述

有了IP层和路由器之后又有了三个问题:选路,控制和可靠性。

  • 解决办法:路由协议:(RIP、OSPF、BGP等)
  • ICMP:Internet控制报文协议
  • TCP/UDP:传输层协议(传输控制协议和用户数据报协议)

在上述协议的基础上,实现了多种网络应用:FTP、HTTP、TELNET、POP3、SMTP、SNMP、DNS等等

TCP/IP协议族:上述各个协议的统称。

TCP/IP是网间互连的一个重要协议,是一个被广泛采用的互连协议标准。
TCP/IP是一个协议族,TCP和IP是其中两个最重要的且必不可少的协议,故用它们作为代表命名。

TCP/IP 的分层模型

分层的优势:简化问题,分而治之,有利于软件升级换代。

TCP/IP协议

分层的缺点:效率低

  1. 各层之间相互独立,都要对数据进行处理
  2. 每层处理完毕都要加一个头结构,增加了通信数据量

在这里插入图片描述

TCP/IP 的分层原则:信宿机第n层收到的数据与信源机第n层发出的数据完全一致 。

分层原则

协议分层的两个边界:操作系统边界、协议地址边界。

协议边界

IP位于所有通信的中心,是唯一被所有应用程序所共有的协议。

TCP/IP沙漏模型

总结: TCP/IP模型是在一个硬件层上构建的4个软件层

  1. 应用层:提供通讯用的应用程序,如电子邮件,文件传输。
  2. 传输层:提供应用程序间端到端的通信。(格式化信息流、提供可靠传输、识别不同 的应用程序)
  3. IP层:负责点到点通信。(处理TCP分层发送请求、为进入的数据报寻径、处理ICMP报文:控流和拥塞控制、组播服务)。
  4. 网络接口层:接收IP数据并通过选定的网络发送。

TCP/IP Internet的发展历史

  1. 1958年1月,ARPA (Advanced Research Projects Agency)成立。旨在研究对国防有重大意义的高新技术。其中研究的重要任务之一是:在战争期间保证不间断、高可靠性通信的通信网络系统。
  2. 1969年10月,ARPA建立了第一个分组交换网络ARPANET。
  3. 1973年,ARPA启动互联网研究项目(Internetting),并导致了TCP/IP的出现与发展。
  4. 1977-1979,推出目前形式的TCP/IP体系结构和协议规范(基本定型)。
  5. 1980年前后,ARPA上的所有机器开始转向TCP/IP,并以ARPANET为主干逐步建立Internet。
  6. 1983年初,向TCP/IP的转换全部结束。
  7. 1975年起ARPANET的网控与管理者将ARPANET一分为二:
    ARPANET:用于进一步的研究。
    MILNET:用于军方的非机密通信。
  8. 1983年,伯克利加州大学推出内含TCP/IP的第一个BSD UNIX (Berkeley Software Distribution UNIX)。此举使ARPANET覆盖了当时美国90%的计算机科学系。
  9. 1984年,Internet基本形成。
  10. 1985年,NSF (National Scientific Foundation)开始资助TCP/IP和互联网的研究。
  11. 1986年,建立NSFNET,使全美的主要院校、科研机构联入NSFNET,并与ARPANET相联。
  12. 此后,NSF不断发展并逐步取代ARPANET成为Internet的新主干,ARPANET逐渐退出历史舞台。
  13. 1991年起,美国政府决定把主干网交给私人公司。
  14. 1993年,高级网络和服务公司ANS (AdvancedNetworks and Services)建立了ANSNET,并准备取代NSFNET。
  15. 1995年,NSF不再对NSFNET提供资助,各种商业网络代替NSFNET提供主干通信服务,Internet进入商业化时代。
  16. 1995年,VBNS (Very High Speed Backbone Network Service)建设并取代ANSNET。
  17. 1996年,美国启动NGI (Next Generation Internet),并从1998年开始研究建设NGI的主干网Abilene。
  18. 目前的TCP/IP是第4版,称作IPv4。
  19. 1998年,IPv6协议标准于基本制定完成,进入实用化阶段。

1995年10月24日,美国联邦网络委员会为Internet作了如下定义:

Internet是一个全球性的信息系统,系统中的每台主机都有一个全球唯一的主机地址,地址格式通过IP协议定义。系统中主机与主机间的通信遵守TCP/IP协议标准,或是其它与IP兼容的协议标准来交换信息。在以上描述的信息基础设施上,利用公网或专网的形式,向社会大众提供资源和服务。

TCP/IP形成的主要原因

1.TCP/IP是最早出现的互联网协议,它的成功得益于顺应了社会的需求。

  1. DARPA采用开放策略推广TCP/IP,鼓励厂商、大学开发TCP/IP产品 。

  2. TCP/IP与流行的UNIX系统结合是其成功的主要源泉。

  3. TCP/IP技术来自于实践,并在实践中不断改进。

Standford大学的Vint Cerf因在TCP/IP上作出的突出贡献,而被人们称为“Internet之父”。

2. 点到点协议PPP

PPP简介

PPP (Point to Point Protocol)属于网络接口层,主要用于拨号接入Internet的场合。

早在1974年7月,IETF就以RFC1661的形式推出了PPP标准。

至今仍然被广泛应用,并随着新型宽带技术的推出而衍生出新的形式,如符合ADSL接入要求的PPPoE。

PPP协议的对等段是客户和ISP,它们通过Modem和电话网络连接。

PPP协议流程:

  1. 在建立PPP链路前,发起方必须通过电话网络呼叫回应方。呼叫成功后双方建立了一条物理连接。
  2. 利用LCP创建PPP链路。
  3. 用PAP或CHAP验证客户身份。
  4. 用IPCP配置IP层参数(主要是配置IP地址)。
  5. 通信完成后,双方利用LCP断开PPP链路。
  6. 之后,断开物理连接。

上述流程中各个报文段的含义如下:

  1. 发起方发送LCP配置请求报文,其中包括各项配置参数,比如
    使用的认证协议、最大接收单元和压缩协议等
  2. 回应方若同意各项配置参数,则返回确认报文
  3. 发起方提供账号和口令,以便验证自己的身份
  4. 回应方验证发起方的身份成功后,向其返回确认报文
  5. 发起方发出IPCP配置请求
  6. 回应方返回确认,其中包含了分配给发起方的IP地址
  7. 发起方发回LCP终止链路请求
  8. 回应方返回确认,链路终

PPP链路操作的5个阶段

在这里插入图片描述

  • Dead:初态和终态,表明物理层尚未准备好;
  • Establish:使用LCP建立和配置链路;
  • Authentication:身份认证阶段;
  • Network:使用相应的NCP配置网络层议;
  • Terminate:终止链路。

PPP协议满足条件和组成

PPP

  1. PPP是使用串行线路通信的面向字节协议
  2. PPP可以在同步和异步线路上使用
  3. 由于流量控制、差错控制已在TCP中实现,因此PPP 没有纠错功能不进行流量控制不需要帧序号不支持多点链路使用全双工方式传输数。

PPP协议应满足的条件

  1. 简单:不需要复杂的流量控制、差错控制等功能,也不需要序号,只需要实现最基本的功能。
  2. 封装成帧:规定特殊的字符作为帧的开始和结束标志,同时保证能正确地区分数据与帧的定界标志,保证数据的透明传输。
  3. 支持多种网络层协议:能支持多种网络层协议。
  4. 支持多种类型链路:能在多种链路上运行,如同步或异步、高速或低速、电或光等链路。
  5. 差错检测:可进行差错检测,丢弃错帧。
  6. 检测连接状态:能及时自动检测链路工作状态。
  7. 可设置最大传送单元:可针对不同的链路设置最大传送单元MTU的值(帧中数据部分的长度)。
  8. 支持网络层地址协商:支持网络层通过协商配置并识别网络地址。
  9. 支持数据压缩协商:提供协商使用数据压缩算法的方法。

PPP协议的组成

  1. 帧格式及成帧方法(HDLC封装)
  2. 用于建立、配置和测试PPP链路的LCP(Link Control Protocol ,链路控制协议)
  3. 用于建立和配置网络层协议的NCP(Network Control Protocol,网络控制协议)。对于IP网络而言,使用IPCP(IP控制协议)。

此外,当客户拨入ISP时,ISP需要验证客户身份,此时可以使用2个认证协议,即PAP和CHAP。

相关协议

DHLC

DHCL是一种成帧方法。

  • 定义了将IP数据报封装到串行链路的方法,明确的界定一个帧的结束和下一个帧的开始,其帧格式允许进行错误检测。
  • PPP既支持异步链路,也支持面向位串的同步链路。
  • IP数据报是PPP中信息部分,其长度受最大传送单元MTU的限制。MTU的默认值是1500字节。

LCP

LCP是一个链路控制协议

  • 链路控制协议负责线路建立、配置、测试和选项协商,并在它们不再需要时,稳定地把他们释放。

NCP

NCP是一套网络控制协议

  • 网络控制协议可以支持不同地网络层协议,如IP、Appletalk等,对于所支持的每一个网络层协议都有一个不同的 网络控制协议,用来建立和配置不同的网络层协议。提供了协商网络层选项的方式。

PPP协议的帧格式

PPP协议帧格式

  1. 标志域:标志为0x7E,即“01111110”,与HDLC相同。
  2. 地址域:固定为0xFF,即“11111111”,表示所有站都可以接收这个帧。因为PPP只用于点对点链路,地址域实际上不起作用。
  3. 控制域:
    • 置为0x03,即“00000011”,表示PPP帧不使用编号。PPP帧有三种类型:信息帧、监督帧、无编号帧
    • 缺省值:PPP不提供使用序列号和确认应答的可靠传输。
    • 在有噪音的环境中,如无线网络中,通过LCP确定可以使用编号方式的可靠传输。
  4. 协议域:说明信息域中承载分组的种类。PPP为LCP、NCP、AppleTalk和其他协议定义了相应的代码。缺省长度是2字节,通过LCP协商变成1个字节。常用的有:
    • 0x0021:IP数据报。
    • 0x002b:IPX数据。
    • 0x0029:AppleTalk数据。
    • 0xc021:PPP链路控制数据(LCP)。
    • 0x8021:IP控制协议(IPCP)。
    • 0x802b:IPX控制协议。
    • 0x8029:AppleTalk控制协议。
  5. 信息域:信息域是网络层传送过来分组,长度可变,可以协商一个最大值(MTU)。缺省1500字节。
    • 字节填充法:当PPP使用异步传输时(面向字符),使用字节填充法来(0x7D)消除信息中可能出现的0x7E字符。
    • 位填充法:PPP协议用在SONET/SDH链路时,使用同步传输而不是异步传输。
  6. 校验和:
    • 校验和字段通常是2个字节,但也可以通过协商使用4个字节的检验和。
    • PPP协议对收到的每一个帧,使用硬件进行CRC检验。若发现有差错,则丢弃该帧。因此,PPP协议可保证链路级无差错接收。

LCP

LCP报文

在这里插入图片描述
报文格式

报文格式

链路配置报文

在这里插入图片描述

  1. Configure-Request:发起方发送的第一个报文;
  2. Configure-Ack:如果Configure-Request中的每个选项都能被接收端识别,而且都被接受;
  3. Configure-Nak:如果每个选项都能识别,但是只有部分能接受;
  4. Configure-Reject:如果Confiure-Request有部分选项不能被识别,或者不能被接受。

链路配置报文中选项的格式:

Options字段:包含0个或多个要协商的选项,同时协商;

选项的格式:

在这里插入图片描述
类型:
在这里插入图片描述

链路终止报文
在这里插入图片描述

PAP- Password Authentication Protocol

PAP全称为:Password Authentication Protocol(口令认证协议),是PPP中的基本认证协议。PAP就是普通的口令认证,要求将密钥信息在通信信道中明文传输,因此容易被sniffer监听而泄漏。

发生时机:仅在建立连接的阶段发生;

认证方式:一端发送明文口令至对等端,由对方认证;

特性:无法防止重放(playback)、穷举(repeated trial)等攻击;

封装:PPP帧的数据字段;

在这里插入图片描述
在这里插入图片描述

CHAP: Challenge-Handshake Authentication Protocol

发生时机:建立连接时和连接建立之后的任何时间

在这里插入图片描述

CHAP全称为:Challenge Handshake Authentication Protocol(挑战握手认证协议),主要就是针对PPP的,除了在拨号开始时使用外,还可以在连接建立后的任何时刻使用。

CHAP 协议基本过程是认证者先发送一个随机挑战信息给对方,接收方根据此挑战信息和共享的密钥信息,使用单向HASH函数计算出响应值,然后发送给认证者,认证 者也进行相同的计算,验证自己的计算结果和接收到的结果是否一致,一致则认证通过,否则认证失败。这种认证方法的优点即在于密钥信息不需要在通信信道中发 送,而且每次认证所交换的信息都不一样,可以很有效地避免监听攻击。

3. Internet地址及地址解析

Internet地址

几个问题

为啥要进行编址:统一的思想,屏蔽物理地址。

什么是地址:标识符

标识哪些东西:名字、地址、路径

Internet地址应该具备哪些性质:能定位、要唯一、好计算

物理地址能作为Internet地址吗:不能(多样性、多义性)

TCP/IP Internet编址方式如何:IP地址

Internet的概念层次

在这里插入图片描述
地址 类型

  • A类:0——8位网络号,首字节1-126
  • B类:10——16位网络号,首字节128-191
  • C类:110——24位网络号,首字节192-223
  • D类:1110——组播地址,首字节224-239
  • E类:11110——保留未用,首字节240——247

特殊IP地址

网络地址:主机号全0;

广播地址:主机号全1;

有限广播地址:32位全1;

回送地址:127...* , 网络软件测试及本机进程间的通信。该类地址用于本机进程间的通讯或者协议软件测试,通常为127.0.0.1

IP地址的实质

IP地址标识的不一定是一台主机,实质上标识的是到一个网络的一条连接。

网络字节顺序:同样的数据在内存中存储方式不同

在计算机中数据以小端大端方式存储。规定:首先发送整数中的高字节。

IP编址的缺陷

  1. 限制网络的平滑升级
    如果号码空间不足的话,必须要升位,并改变号码的位长,这是任何号码升位中都必须要遇到的。升位后的号码是否兼容原号码取决于编号规则号码分配,而不是号码长度
  2. 对主机的移动性支持不够
    标识设备的IP仅仅表示了设备的位置,并未有标识设备本身

Internet编址管理机构

在这里插入图片描述

子网编址技术

在这里插入图片描述
可以让一个网络号跨越多个物理网络

虽然128.10.0.0这个网络号中可以包含多个物理网络,但是互联网络的其余部分都只能看到128.10.0.0
这个大网。

问题:如何指示网络部分

解决:使用子网掩码。

具体方法:

每一个使用子网的网点都选择一个32位的位模式。若位模式中的某位为1,则对应IP地址中的某位位网络中的一位,否则位主机号的一位。

子网掩码:网络号部分全为1,主机号部分全为0.

子网选路

  1. 路由表:(网络地址,子网掩码,下一跳)
  2. 统一的选路算法:Route_IP_Fatagram(datagram,routing_table)
    从数据报中提取出目的IP地址D;
    if(D 的前缀匹配某直接相连的网络地址){
    	通过该网络把该数据报发送到目的站
    }else{
    	for(路由表中的每一项){
    		N = D逐比特与子网掩码相与
    		if(N等于表项中的网路地址段)
    			将本数据报发往表项中下一条地址所指定的路由器
    	}
    }
    if(没有找到匹配的表项){
    	宣布选路出错;
    }
    

特殊掩码:

  • 全0掩码,对应默认路由
  • 全1掩码,对应特定主机路由

子网划分举例

例1:等长子网划分

假设已分配C类网络182.28.61.0,且需要4个子网,每个子网最多25台机器。

**RFC950规定:**不允许使用全0或全1的子网(RFC1812取消了该限制)

子网位数 掩码 掩码后八位 子网数 主机数
2 255.255.255.192 11000000 2 64
3 255.255.255.224 11100000 6 30
4 255.255.255.240 11110000 14 14
5 255.255.255.248 11111000 30 6
6 255.255.255.252 11111100 62 2

划分方法:使用2位子网号,掩码为:255.255.255.224

掩码后八位 子网号
001 00000 192.28.61.32
010 00000 192.28.61.64
011 00000 192.28.61.96
100 00000 192.28.61.128
101 00000 192.28.61.160
110 00000 192.28.61.192

从以上6个子网中任意选择3个即可。

例2:变长子网划分

假设已给C类网址202.18.6.0,设计符合下列要求的子网划分方案:

  1. 4个网络,每台最多26台主机
  2. 3个网络,每个最多10台主机
  3. 4个点到点串行链路

划分方法:采用不等长的子网掩码。先按最多主机数选择符合要求的子网位,然后对子网再继续划分。

在这里插入图片描述

地址转换- ARP协议

ARP:Address Resolution Protocol
RARP:Reverse Address Resolution Protocol

在这里插入图片描述
问题:

为什么要进行地址转换:必须根据IP地址找到物理地址才能进行实际的数据传送。

如何进行地址转换:直接映射 或者 动态绑定

两种地址类型:

  1. 空间较小且容易配置的物理地址(直接映射)
  2. 空间巨大且固定的物理地址(动态绑定)

直接映射:IP地址 \leftarrow \rightarrow 物理地址
动态绑定:用协议获取

基本步骤

  1. 远端A广播包含目标B的IP地址IPb的ARP请求报文,请求B回答自己的物理地址PAb;
  2. 网络上的主机将IPb与自身的IP地址比较,若相同,则转步骤三,否则忽略。
  3. B将PAb封装在ARP应答报文中,之后发送给A;
  4. A从应答报文中提取IPb和PAb,从而获得IPb和PAb之间的映射关系。

总结:广播请求,单播回应。

提高ARP的效率

  1. 设置ARP cache,存放最近解析出来的IP/MAC对;
  2. 请求解析时,把自己的IP/MAC地址也放在报文中;
  3. 收到ARP请求的所有主机都缓存其中的IP/MAC;
  4. 主机入网时,主动广播它的IP/MAC。

ARP中软状态使用(缓存信息失效问题)

问题:一条IP/MAC映射记录失效怎么办?

使用超时机制,一般为20分钟,如果在超过规定的超时时间内没有使用某条记录,那么就删除该记录。

优势:

  1. 无需专门的通知机制;
  2. 对硬件可靠性要求低。

缺陷:可能会’反应迟钝‘。

不同网络间地址转换:路由器转发:

在这里插入图片描述
转换步骤

  1. A利用ARP获得路由器R接口1的物理地址’
  2. A把报文发给路由器R的接口1
  3. R从接口2使用ARP获得B的物理地址
  4. R把报文从接口2转发给B

ARP的封装与标识

ARP必须封装到一个帧中

在这里插入图片描述

反向地址转换-RARP协议

问题:无盘工作站启动时,如何确定它的IP地址?

用它的物理地址在网上广播,请求服务器告诉IP地址。

在这里插入图片描述

  1. A发出RARP关播请求报文(MAC_A,0,MAC_A,0)
  2. RARP服务器给A发应答报文(MAC_S,I_S,MAC_A,I_A)

注意
3. 无盘工作站所在的网络必须有RARP服务器
4. 有多台RARP服务器,可采用主、备份服务器技术

- 一主服务器,其余位备份服务器
- 主服务器先响应,备份服务器有两种响应方式
	+ 只有在收到重复的RARP请求时才响应
	+ 随机延迟一段时间后再响应
  1. 封装RARP的以太网帧类型为8035H

课后作业

题目:
1、第一章第1部分:网络协议分层的优缺点。

分层的优势:**简化问题,分而治之**,有利于软件升级换代。
分层的缺点:**效率低**

	1. 各层之间相互独立,都要对数据进行处理
	2. 每层处理完毕都要加一个头结构,增加了通信数据量

2、第一章第1部分:你认为一个路由器最基本的功能应该包括哪些?

第一,网络互连:路由器支持各种局域网和广域网接口,主要用于互连局域网和广域网,实现不同网络互相通信;
第二,数据处理:提供包括分组过滤、分组转发、优先级、复用、加密、压缩和防火墙等功能;
第三,网络管理:路由器提供包括路由器配置管理、性能管理、容错管理和流量控制等功能。

3、第一章第2部分:分析PAP和CHAP的优缺点。

PAP
            优点:简单,仅在建立连接时验证,认证速度快
            缺点:密匙信息使用明文传输,不安全
CHAP

          优点:不传输密匙信息,可以有效避免监听攻击,相比PAP更安全
          缺点:三次握手协议,验证更复杂,在建立连接后依然需要随机验证,速度慢。

4、第一章第3部分:在理想情况下,可以有多少个A类地址,每个A类地址中包含多少个可以配置给主机的IP地址?

有126个A类地址。
每个A类网络理论上可连接$2^24-2=16777214$台主机(减2的原因是:全0表示主机地址,全1表示广播地址)。

5、结合课堂中的例子,分析跨越2个或3个路由器转发IP数据报时ARP的使用步骤,以及经过每个步骤后通信双方及中间路由器ARP缓存的变化情况。

假设:有主机A和主机B,主机A经过路由器R1和R2连接到B

步骤:

1. A向路由器R1发送ARP请求报文,路由器R1获得报文后返给A一个IP地址,并保存A的IP/MAC地址映射。
2. A将包含B的IP地址的数据帧发送给R1,
3. R1根据B的IP地址查询路由表并进行路由选择,将数据报转发给路由器R2
4. R2根据自己缓存的IP/MAC地址映射,将数据报发送给B。
发布了88 篇原创文章 · 获赞 16 · 访问量 2万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章