现在的位置: 首页 > 综合 > 正文

计算机网络学习一

2018年12月16日 ⁄ 综合 ⁄ 共 2906字 ⁄ 字号 评论关闭

1.OSI分层也几个层的作用

OSI分七层,自下而上,依次是:

  1. 物理层,包括物理联网媒介,如电缆,网线等。数据格式是比特流。
  2. 数据链路层,控制物理层和网络层间的传输。功能是如何在不可靠的物理线路上可靠的传递,将物理层数据封装成帧,提供错误校验,并通过MAC寻址。
  3. 网络层,主要是将网络地址IP翻译成物理地址MAC,使用数据格式包,并决定发送的路由路线。
  4. 传输层,数据格式为段,实现不同主机间的进程的通信,包括可靠TCP与不可靠UDP,错误校验,流量控制。
  5. 会话层,用于网络中两个节点建立,维持,终止连接。传输的直接是数据。
  6. 表示层,将应用程序使用的数据格式化成网络所能理解的,如数据,链接的加密解密,图片,文件的编码和解码。
  7. 应用层,为用户提供程序接口以使用网络服务,服务包括FTP,邮件SMTP等。

2.TCP/IP有那几层?每层所使用的协议

  1. 应用层,文件传输协议FTP,邮件传输协议SMTP,网络远程访问协议Telnet。
  2. 传输层,TCP,UDP。
  3. 网络层,网际协议IP,ICMP,ARP。
  4. 接口层(物理层和数据链路层),HDLC,PPP等。

3.硬件(MAC)地址的概念和作用

MAC是电脑的物理地址,用于局域网的传输。在局域网内,交换机通过MAC来寻址。

4.ARP协议概念和算法

ARP用于网络层,地址解析协议,根据IP地址解析出对应的MAC地址。当主机A需要想主机B发送数据时,解析流程如下:

  1. 根据主机A的路由表,确定主机B的IP,并根据ARP缓存判断是否有B的匹配的MAC地址,如果没有执行2
  2. 主机A去访问主机B的IP的硬件地址,然后本地网络中广播ARP请求,本地主机收到ARP请求后检查,如果不符就丢弃请求。
  3. 主机B确定ARP请求中的IP和自己的IP一致,将主机A的IP和MAC的映射添加到ARP缓存。并且回复主机A一个ARP消息。
  4. 主机A收到主机B的ARP消息后,将主机B的IP和ARP映射关系添加进ARP缓存,并开始通信。ARP缓存结束后,重新执行上述步骤。

5.CRC冗余校验算法,IP和校验算法

CRC百科说的很清楚,IP和校验是用来保证IP包头的完整性。发送方首先将校验和字段置为0,然后将IP包头按16位比特大小分成多个单元,不够的补0,对每个单元采用反码和运算,即求反码相加,高位益出的添加到低位。将得到的结果的反码写入校验和。

接收方将IP包头按16位分成多个单元,不足的补0,然后计算反码和,并将结果与校验和字段相加,如果结果每一位都是1,则传输无误,否则说明传输出现问题。

6.如何实现透明传输

一是在设计上透明,例如网络的分层,层与层之间相互独立,相互调用。一是在用户使用上,例如借口,socket中的send(), recv()函数。

7.各个层使用的交换设备

物理层有集线器,网卡,数据链路层有网桥,交换机,网络层有路由器,传输层及更高的层使用网关。

8.路由表的内容

路由器的工作主要就是为经过的数据选择一条合适的路线来传递。包括静态路由表和动态路由表,静态路由表是事先设定好的,动态路由表会根据网络情况动态调节。路由表一般包括:

  1. 网络ID,目标网络的IP地址
  2. 子网掩码,用来判断IP所属网络段
  3. 下一跳地址,数据发送到目标地址时的下一个网络地址
  4. 接口,数据包转发到网络ID时所使用的网络接口,是一个端口号或者逻辑标识符
  5. 跳数,路由跳转次数
  6. 路由服务质量

9.路由分组转发算法

  1. 从IP数据包头部取出目的IP地址D,并得到其所在网络N
  2. 如果N就是当前路由直接连接的网络,直接发送,否则执行3
  3. 如果路由表中有D对应的特定路由器,就把数据发送给所制定的下一跳路由。否则执行4
  4. 如果路由表中有到达N的路由,就把数据交给其对应的下一跳路由,否则执行5
  5. 如果路由表中有一个默认路由,就把路数据交给默认路由,否则执行6
  6. 报告转发分组出错

10.IP报文的格式,各字段的意义

IP包头格式为:

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Version|  IHL  |Type of Service|          Total Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Identification        |Flags|      Fragment Offset    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Time to Live |    Protocol   |         Header Checksum       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Source Address                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Destination Address                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Options                    |    Padding    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

前5行是必选的,所以IP包头最小要20字节。

Version(版本),4位,0100是Ipv4,0110是Ipv6.

IHL(报头长度),4位,用来表示32的倍数,如果是5,说明长度为32*5=160,20字节。

Type of Service(服务类型),8位,前三位代表优先权,后面依次代表 延迟,吞吐量,可靠性,开销,保留。每个占用一位。

Total Length(总长度),16位,表示数据报的总长度,因此最长不超过65535.

Identification(标识符),16位;Flags(标记字段),3位,Fragment offset(分段偏移),13位。三者一起使用,用于数据包的分段。

TTL(生存时间),为防止数据包在网络上永久存在,8位,最大值255,每经过一台路由减1.

Protocol(协议),8位,制定了数据包的信息类型。

Header Checksum(报头校验和),用于IP报头纠错检测。

Source Address(源地址),数据发送方的IP地址,32位。

Destination Address(目标地址),32位,目标IP地址。

Options(可选字段),用来定义一些自定义选项,供测试用。32位,长度必须是32的整数,不足32位补0.

【上篇】
【下篇】

抱歉!评论已关闭.