计算机网络知识点回顾

一、概述

1、构造互连网最简单的方法就是把两个或多个网络通过路由器进行连接。路由器:为不同类型的物理网络提供连接。
 
2、在TCP/IP协议族中,网络层IP提供的是最一种不可靠的服务,TCP在不可靠的IP层上提供了一个可靠的运输层。
 
3、连接网络的另一种途径是使用网桥,网桥是在链路上对网络进行互连,而路由器则是在网络层上对网络进行互连。网桥使得多个局域网组合在一起,这样对上层来说就好像是一个局域网。
 
4、互联网的地址
     
     有三类IP地址:
     单播地址:目标端为单个主机
     广播地址:目标端为给定网络上的所有主机
     多播地址:目标端为同一组内的所有主机
     
5、在TCP/IP领域中,域名系统(DNS)是一个分部的数据库,由它来提供IP地址和主机之间的映射关系。
 
6、internet的意思是用一个共用的协议族把多个网络连接在一起,而Internet指的是世界范围内通过TCP/IP互相通信的所有主机集合。

二、链路层

1、链路层的目的:
  • 为IP模块发送和接收IP数据报
  • 为ARP模块发送请求和接收ARP应答
  • 为RARP发送RARP请求和接收RARP应答
2、链路层协议:PPP协议(点对点协议)
     在串行链路上封装IP数据报的方法;
     建立、配置和测试数据链路的链路控制协议;
     针对不同网络层协议的网络控制协议体系
 
3、环回接口
     环回接口允许在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信。A类网络号127就是为环回接口预留的。
 

三、网络层

1、TCP/IP对IP提供不可靠的、无连接的数据报传送服务。
不可靠:它不能保证IP数据能成功到达目的地。IP仅提供尽力而为的传输服务,如果发生某种错误,IP有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端。
无连接:IP并不维护任何关于后续数据报的状态信息,每个数据报的处理都是相互独立的,也就是说,IP数据报可以不按发送顺序接收。
 
2、IP数据报
TTL:time-to-live,生存时间字段设置了数据报可以经过的最多路由器数。它指定了数据报的生存时间,TTL的初始值由源主机设置,一旦经过一个处理它的路由器,它的值就减去1,当该字段的值为0时,数据报就丢弃,并发送ICMP报文通知源主机。
 
3、IP路由选择
如果主机与源主机直接相连或都在共享网络上(以太网或令牌环网),那么IP数据报就直接发送到目的主机上,否则,主机把数据报发往一默认的路由器上,由路由器来转发该数据报。
 
4、路由表中每一项都包含下面这些信息:
  • 目的地址:它既可以是完整的主机地址,也可以是一个网络地址,由该表中的标志字段来指定。
  • 下一跳路由器的IP地址,或者有直接连接的网络IP地址
  • 标志:其中一个标志指明目的IP地址是网络地址还是主机地址,另一个标志指明下一站路由器是否为真正的下一站路由器
  • 为数据报的传输指定一个网路接口
 
5、IP路由选择主要完成以下这些功能:
      1)搜索路由表,寻找能与目的IP地址完全匹配的表目(网络号和主机号都要匹配)。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口
     2)搜索路由表,寻找能与目的网络号相匹配的表目,如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口
     3)搜索路由表,寻找标为”默认“的表目,如果找到,则把报文发送给该表目指定的下一站路由器 。
     如果上面这些步骤都没有成功,那么该数据报就不能被传送。
 
6、子网寻址
     子网编制不是把IP地址看成是由单纯的一个网络号和一个主机号组成,而是把主机号再分成一个子网号和一个主机号。
 
7、子网掩码
     任何主机在引导时进行的部分配置中是指定主机IP地址,除了IP地址以外,主机还需要知道有多少比特用于子网号及多少比特用于主机号,这是在引导过程中通过子网掩码来确定的,这个掩码是一个32bit的值,其中值为1的比特留给网络号和子网号。
 
8、当一台主机把以太网数据帧发送到位于同一局域网上的另一台主机时,是根据48bit的以太网地址来确定目的接口的。地址解析协议为这两种不同的地址形式提供映射:32bit的IP地址和数据链路层使用的任何类型的地址。

四、运输层

1、TCP连接的三次握手过程:

  • 请求端发送一个SYN段(同步序列编号)指明客户端打算连接的服务器端的端口,以及初始序号seq
  • 服务器端返回包含服务器的初始序号的SYN报文段作为应答,同时将序号ack设置为客户端的seq+1作为对客户端SYN报文段进行确认
  • 客户端将确认序号ack设置为服务器端的seq+1作为对服务器端的SYN报文段进行确认

  示意图如下:

  

  seq:本报文段所发送数据的第一个字节的序号

  ack:期望收到对方下一个报文段的第一个数据的字节序号

  确认ACK:仅当ACK=1时确认号字段才有效,当ACK=0时,确认号无效

  同步SYN:在连接建立时,用来同步序号,当SYN=13而ACK=0时,表明这是一个连接请求报文段,对方若同意建立连接,则应在响应的报文段中使SYN=1,因此SYN=1表示这是一个连接请求或者连接接受报文

  终止FIN:用来释放一个连接,当FIN=1时,表明此报文段的发送方的数据已经发送完毕,并要求释放运输连接

2、TCP的连接释放过程(四次挥手):

  • 连接释放时,首先由一端发送终止连接,向服务器端一个FIN,用来关闭从客户端到服务器端的数据传送。
  • 当服务器端收到这个FIN后,它发回一个ACK,确认序号ack=收到的序号u+1,然后服务器端就进入关闭状态,从客户端到服务器端的连接就释放了。但是如果服务器端要发送数据,客户端仍要接收
  • 当客户端收到服务器端的确认后,就进入终止状态2,此时服务器端发送的FIN=1,seq=w,ack仍然为u+1
  • 客户端在收到服务器端的连接释放报文段后,必须对此发送确认,将ACK置为1,确认序号ack=w+1,自己序号seq=u+1
  • 在经过时间等待计时器设置的时间2MSL后,客户端才进入关闭状态(有两个原因:一是为了保证A发送的最后一个ACK报文段能够到达B,二是使得本连接持续的时间内所产生的报文段都从网络消失)

    

  

3、TCP可靠传输的实现

  以字节为单位的滑动窗口

  超时重传

  选择确认SACK  

  

     
原文地址:https://www.cnblogs.com/xujian2014/p/5209039.html