《计算机网络》之网络层和运输层等章节学习笔记

笔记说明:本笔记是从编程的角度来写的,即内容是我认为对编程有帮助的东西,而不是从一个网络专业知识的角度来写的.
下图表示的是计算机的体系结构的不同划分对比:OSI的七层协议体系结构、TCP/IP的体系结构和五层协议的体系结构:

下图说明的是应用进程的数据在各个层的传递过程中所经历的变化

下图是TCP/IP协议的表示方法距离.注意的是路由器在转发分组时最高只用到网络层而木有使用运输层和应用层
下图显示的是主机C上的两个服务器进程分别向A和B的客服进程提供服务
为进行网络中数据交换而建立的规则、标准或约定称为网络协议.网络协议主要由以下三个要素组成:
 ①、语法 即数据与控制信息的结构或格式
 ②、语义 即需要发出何种控制信息,完成何种动作以及做出何种响应
 ③、同步 即事件实现顺序的详细说明.PS:这里的同步是广义的,即在一定条件下应当发生什么事情,因而同步含有时序的意思.
 现在最常用的方法是使用 网络适配器来实现通信的协议的硬件和软件.一般的适配器包括了数据链路层和物理层这两层的功能.
下图所示只考虑数据在数据链路层流动
在因特网中,网络层协议数据单元就是 IP数据报或简称为数据报、分组或包.每一种链路层都规定了帧的数据部分的长度上限即最大传送单元MTU
      分组交换的主要特点:分组交换采用存储转发技术通常我们把要发送的整块数据称为一个报文.在发送数据报之前,先把数据报划分成一个个更小的等长数据段.在每一个数据段前面加上一些必要的控制信息组成的首部后,就构成了一个分组,又称为"包".分组是在因特网中传送的数据单元. 下图所示把一个报文划分为几个分组的概念

IP数据报的格式
以太网提供的服务是不可靠的交付,即 尽最大努力交付.对有差错帧是否重传则由高层来决定.
      与IP协议配套使用的还有四个协议:地址解析协议ARP   (Address Resolution Protocol)、逆地址解析协议RARP(Reverse Address Resolution Protocol)、网际控制报文协议ICMP(Internet Control Message Protocol)、网际组管理协议IGMP (Internet Group Management Protocol)
      物理层使用的中间设备叫 转发器;数据链路层使用的中间设备叫 网桥或桥接器;网络层使用的中间设备叫 路由器;在网络层以上使用的中间设备叫 网关.PS:用网关连接两个不兼容的系统需要在高层进行协议的转换.有时候我们把网络层使用的路由器称为网关.在数据链路层扩展以太网要使用网桥.网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发和过滤. 下图所示不同层次不同区间的源地址和目的地址
      用转发器或网桥连接起来的若干局域网仍为一个网络,因为这些网络具有相同的主机号.具有不同网络号的局域网必须使用路由器进行互连. 路由器只根据目的站的IP地址的网络号进行路由选择.路由器总是具有两个或两个以上的IP地址,即路由器的每一个接口都有一个不同的网络号的IP地址.路由器在接收到IP数据报后,再按照目的网络号和子网号找到目的子网,把IP数据报交付给目的主机.网络层对应IP ;运输层对应TCP. 下图显示的是IP地址中的网络号字段和主机号字段.
IP地址的编址经历了三个历史阶段:分类的IP地址、子网的划分、构成超网. 下图所示两级IP地址的定义
下图所示三级IP地址的定义

下图所示IP地址的指派范围
物理地址是数据链路层和物理层使用的地址,而IP地址是网络层及其上面各层使用的地址,是一种逻辑地址.IP地址是逻辑地址是因为它是用软件来实现的.
下图所示 IP地址与硬件地址的区别
在IP层抽象的互联网上只能看到IP数据报.在局域网的链路层,只能看见MAC帧.MAC帧在不同网络上进行传送. 下图所示 以太网V2的MAC帧格式

片偏移指出:较长是分组在分片后,某片在原分组中的相对位置.也就是说相对于用户数据字段的起点,该片从何处开始.片偏移以八个字节为偏移单位.
虽然因特网所有的分组转发都是基于目的主机所在的网络,但在大多数情况下都允许有这样的特例,即对特定的目的主机指明一个路由.这种路由叫做特定主机路由.
      地址解析协议ARP在主机ARP高速缓存中存放了一个IP地址到硬件地址的映射列表,并且这个映射列表会经常动态更新.每一个主机都设有一个ARP高速缓存,里面有本局域网的各个主机和路由器的IP地址到硬件地址的映射表.路由器和相邻路由器交换信息时,必须把自己所在网络的子网掩码高速相邻路由器. 下图所示地址解析协议ARP的工作原理

A类地址的默认子网掩码是255.0.0.0    B类地址的默认子网掩码是255.255.0.0   C类地址的默认子网掩码是255.255.255.0. 下图所示 A类、B类和C类IP地址的默认子网掩码
端到端的通信是应用进程之间的通信.网络层为主机提供逻辑通信,而运输层为应用进程之间提供端到端的逻辑通信. 下图所示运输层为相互通信的应用进程提供了逻辑通信

下图所示运输层协议和网络层协议的主要区别

      按照OSI的术语,两个对等运输实体在通信时传送的数据单位叫做运输协议数据单元TPDU.但在TCP/IP中,根据所使用的协议是TCP或UDP,分别称之为TCP报文段或UDP用户数据报. 下图所示UDP用户数据报的首部和伪首部

端口号拼接到IP地址即构成了套接字.TCP连接的端点就是套接字.TCP把连接作为最基本的抽象.每一条TCP连接唯一地被通信两端的两个端点即套接字所确定.

下图所示一些常见的端口号
下图所示TCP报文段的首部格式

下图所示用三次握手建立TCP连接

下图所示TCP连接释放的过程
      按照因特网的观点,一个网络是指具有相同网络号的主机集合.因此,用转发器或网桥连接起来的若干个局域网仍为一个网络,即只能有一个网络号.我们知道,在网络层使用的是IP地址,但在实际网络的链路上传送数据帧时,最终还是必须使用该网络的硬件地址.
下面我们归纳出使用ARP的四种典型的情况:
①、发送方是主机,要把IP数据报发送到本网络上的另外一个主机.这是用ARP找到主机的硬件地址.
②、发送方是主机,要把IP数据报发送到另外一个网络上的一个主机.这时ARP找到本网络上的一个路由器的硬件地址.剩下的工作由这个路由器来完成.
③、发送方是路由器,要把IP数据报转发到本地一个网络上的一个主机.这是用ARP找到本网络上的一个主机的硬件地址.
④、发送方是路由器,要把IP数据报另外一个网络上的一个主机.这时用ARP找到本网络上的一个路由器的硬件地址.剩下的工作由这个路由器来完成.
      当路由器收到一个待转发的数据报,在从路由表得出下一跳路由器的IP地址后,不是把这个地址填入IP数据报,而是送给下层的网络接口软件.网络接口软件负责把下一跳路由器的IP地址转换成硬件地址,并将此硬件地址放在链路层的MAC帧的首部,然后根据这个硬件地址找到下一跳路由器.
划分子网只是把IP地址的主机号再进行划分,而不改变IP地址原来的网络号.同样的IP地址和不同的子网掩码可以得出相同的网络地.但是,不同的掩码效果是不一样的.
      无分类编址CIDR(构成超网):使用变长子网掩码VLSM可以进一步提高IP地址的资源的利用率.在VLSM的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择CIDR.CIDR主要特点:CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,因而可以有效地分配IPv4的地址空间,并且可以在新的IPv6使用之前容许因特网规模继续增长.虽然CIDR不使用子网了,但是由于目前仍有一些网络还使用子网划分和子网掩码,因此CIDR使用的地址掩码也可以继续称为子网掩码.
ICMP差错报告报文共有五种:一、终点不可达 二、源点抑制 三、时间超时 四、参数问题 五、改变路由.下图所示ICMP报文的格式

下图所示几种 常用的ICMP报文类型
下图所示ICMP差错报文的数据字段内容
      从运输层的角度来看,通信的真正端点并不是主机而是主机中的进程.也就是说,端到端的通信是应用进程之间的通信网络层位主机提供逻辑通信,而运输层为应用进程提供端到端的逻辑通信.
      UDP支持一对一、一对多、多对一、多对多的通信.UDP的主要特点:无连接、近最大努力交付、面向报文的.发送 方的UDP对应用程序交下来的报文在添加首部后就交给IP层.UDP对交下来的报文既不合并也不拆分,而是保留这些报文的边界.
在网络层,IP数据报中的检验和字段,只检验首部是否出差错而不检查数据部分.运输层还要对收到的报文进行差错检测.
TCP最主要的特点:面向连接的运输层的协议、点对点的、可靠交付的服务、全双工通信、面向字节流的. 下图所示TCP/IP体系中的运输层协议

      TCP中的"流"指的是流入到进程或从进程流出的字节序列."面向字节流"的含义是:虽然应用程序和TCP交付是一次一个大小不等的数据块,但TCP把应用程序交下来的数据仅仅看成是一连串的无结构的字节流.TCP并不知道所传字节流的含义. 下图所示TCP面向字节流的概念
"停止等待"就是没发送完一个分组后停止发送,等待对方发送确认.在收到确认后再发送下一个分组.需要注意一下三点:
一、A 在发送完一个分组后,必须暂时保留已发送的分组的副本.只有在收到相应的确认后才能清除暂时保留的分组副本.
二、分组和确认分组都 必须进行编号.
三、超时计时器设置的重传时间应当比数据在分组传输的平均往返时间更长一些.
通过确认和重传机制,我们在不可靠的传输网络上实现可靠的通信.下图所示的是停止等待协议中可能出现的两种情况:

下图所示确认丢失和确认迟到两种情况
      
在IP地址范围内,有一些原本是非路由地址却被IANA保留,这就是IANA保留地址.这些地址主要用作特殊用途.保留地址主要在以下三类:
      A类:10.0.0.0-10.255.255.255 (长度相当于1个A类IP地址)  B类:172.16.0.0-172.31.255.255  (长度相当于16个连续的B类IP地址)  C类:192.168.0.0-192.168.255.255(长度相当于256个连续的C类IP地址)
      这些地址是不会被互联网分配的,因此它们在互联网上也从来不会被路由通过.虽然它们不能直接和互联网连接,但仍旧可以被用来和互联网通讯,人们可以根据需要来选用适当的地址类,在内部局域网中将这些地址当作公用IP地址一样地使用.在互联网上,那些不需要与互联网通讯的设备,如打印机、可管理集线器等也可以使用这些地址,以节省IP地址资源.
      私有地址:10.X.X.X、172.16.X.X-172.31.X.X、192.168.X.X  这些地址被大量用于企业内部网络中.一些宽带路由器,也往往使用192.168.1.1作为缺省地址.私有网络由于不与外部互连,因而可能使用随意的IP地址.保留这样的地址供其使用是为了避免以后接入公网时引起地址混乱.使用私有地址的私有网络在接入互联网时,要使用地址翻译(NAT),将私有地址翻译成公用合法地址.在互联网上,这类地址是不能出现的. 在因特网中的所有路由器,对目地地址是 私有 地址的数据报一律不进行转发.
      常见的192.168.1.2—192.168.1.99为手动配置IP段,从192.168.1.100~192.168.1.254是DHCP动态地址的IP段当网络中的DHCP服务器有故障或者地址分配完时,或者DHCP客户机联系不上DHCP服务器时,DHCP客户机会自动使用一个从169.254.0.1—169.254.255.254的地址中选择一个地址配置给网卡,这类地址即称为Microsoft自动私有地址,由于地址资源用尽,不可能强求地址类型为DHCP指派. 下图所示一般不使用的IP地址
      交换机和路由器的区别:传统交换机从网桥发展而来,属于OSI第二层即数据链路层设备.它根据MAC地址寻址.路由器属于OSI第三层即网络层设备,它根据IP地址进行寻址,通过路由表路由协议产生.
下图是我用抓包工具分别抓取的TCP协议和UDP协议的各自的一个分组

本文最后更新与2013年1月1日22时(以后还会更新)
本人郑重声明如下 一、本为本人原创.本文来自CSDN地址http://t.cn/zjQjulJ 二、All Rights Reserved. 任何个人或网站转载本文时不得移除本声明. 三、不得对文章进行修改,除非明确说明.同时欢迎大家评论转载和分享.
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值