美文网首页计算机网络面试
计算机网络TCP/IP等相关协议与原理

计算机网络TCP/IP等相关协议与原理

作者: xbase | 来源:发表于2016-05-11 10:54 被阅读697次

    网络分层(由下到上):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。

    重点在: 物理层、数据链路层(这两层需要了解基本的原理)、网络层、传输层(这两层需要了解功能作用,原理和相关的一些协议)、应用层(http协议)。

    开始之前先跟大家说一下协议,很多人不知道协议是什么,尤其是刚接触这方面东西的时候,一听协议,感觉很吊的样子,但是又不知其所云,其实,协议可以理解为:一个双方通信需要共同遵守的规范。

    记住,在网络分层协议中,所有下层的协议的作用就是为了上层服务,谨记!

    接下来,我跟大家一一道来,首先登场的是物理层。

    一.物理层

    作用:比特流与电子信号的转换。例如光纤通过光的亮与灭的形式进行传递,进而转换为比特流。
    

    这一层主要就是跟硬件打交道,这一层也是所有上层的基础。

    二.数据链路层

    作用:通过介质相互连接设备之间数据传输规范。
    

    数据链路层强调的是一种传输规范,这是指什么呢?说白了,就是指每次传输的最大容量(最大传输单元),数据组织结构(以太网帧的概念)、传输的目的地等。

    MAC地址:烧录在网卡ROM中的一串数字,长度48bit。

    分组交换:较大数组分割为较小数组,依次发送。
    原因是数据链路层有不定长度的最大传输单元。

    以太网的帧的概念:前导码(8字节)+本体(首部+数据+FCS)

    以太网帧.png

    交换机:在数据链路层工作的网络设备。

    原理:依靠MAC地址决定向哪个端发送数据,需要“转发表”。
    转发表是交换机自动学习得到的。

    三.网络层(拿IP协议举例)

    作用:保证不同数据链路层下数据的可达性。

    ARP协议(获取MAC地址)和ICMP协议(数据发送异常通知)

    作用:识别对端信息的地址。地址为32位正整数表示,分为四个部分,每个部分由8位整数组成。说白了,是识别要传输目的地的地址。
    每位对应十进制范围:0-255。

    IP地址:网络标识(区分网段)+主机标识(区分同一网段下的主机)

    [注]:网络标识和主机标识是为了寻址而发明。

    IP分类:A类、B类、C类、D类。

    A类:
    第一位为“0”的地址,前8位为网络标识,0.0.0.0-127.0.0.0是A类IP地址的理论范围。
    B类:
    前两位为“10”的地址,前16位是网络标识,128.0.0.0-191.255.0.0,主机标识16位。
    C类:
    前三位为“110”的地址。前24位网络标识,192.0.0.0-223.255.255.0,主机标识为8位。
    D类:
    前4位为“1110”的地址。网络标识为32位,没有主机标识。

    子网掩码:

    IP地址长度仅可表达43亿左右的主机数目,(区分网络标识和主机标识)共32位(一段连续的0和一段连续的1)组成,1的长度就表示网络标识的长度。

    子网掩码的作用是区分IP地址是否在同一子网内。

    路由控制:

    分组数据发送到目标地址的功能,持有路由控制表,它在路由控制表中查找目标IP地址对应的下一个路由器地址。

    源主机--->网卡--->路由器1(路由器控制表)--->路由器2--->网卡--->目标主机

    IP报文分割重组(分片、重组)

    IP协议最大包为2的16次幂,等于65536.

    接下来介绍几个IP协议相关的协议或技术:

    DNS解析:

    将域名转化为IP地址(域名也是分层处理请求的,每一层都有对应的DNS服务器)。

    ARP技术(类似一种广播):

    通过目标IP地址,定位下一个接收数据包的网络设备(主机或路由器)的MAC地址。

    在数据链路层发送广播,如果没有ARP技术,就没有办法穿透中间的服务器(ARP请求+ARP应答)。

    NAT和NAPT技术

    NAT:用于将局域网中的私有地址转换为全局IP地址的技术。
    每个路由器只有一个对外的全局IP地址,如果一个内网主机都向外通讯,怎么办?
    就要使用到NATP技术,可转为TCP和UDP端口号。
    不同的内网IP被转换成同一个公共的IP,但是NAPT技术可以使用不同的端口加以区分。

    NAT和NAPT都需要路由器内部维护一张转换表。

    举例:TCP首次SYN时,会生成这个表,关闭连接时会发出FIN包,收到这个包应答时转换表会被删除。

    四.传输层

    TCP和UDP

    定义:实现应用程序之间的通信。
    TCP:面向有连接的协议,建立连接需要3步,关闭连接需要4步。
    具备数据重传、流量控制等功能,能正确处理丢包功能并有效利用宽带。
    UDP:比较适合做实时视频和音频,效率比TCP高。

    TCP有5个要素:源IP地址、目标IP地址、源端口号、目标端口号、协议号,同一台机器的端口号可以区分为不同的应用程序。

    UDP首部:

    TCP数据包重发.png

    接收方通过TCP首部中的控制位SYN判断这个数据是否曾经接收过?接收过就会舍弃。
    重传超时时间(RTO)动态改变,略大于连接往返时间(RTT),RTO有自己的估算公式

    TCP窗口:

    定义:无需等待ACK,可以发送的最大数量。(窗口大小由接收端控制)
    作用:为了解决发送数据包后,直至ACK确认返回之前,发送端都无法在进行发送的问题。

    流量控制:

    定义:接收端有缓存区数据溢出(如果窗口较大)
    通俗一点的意思就是让发送方慢一点,免得接收方接收不过来。

    慢启动:

    TCP会慢启动算法得出窗口的大小,对发送数据量进行控制。
    发送方拥有一个拥塞窗口,对发送的数据量进行控制。
    TCP协议中的窗口是指:发送方和接收方窗口中的最小值。

    慢启动过程:

    1.通讯开始,发送方窗口为1。每收到一个ACK确认后,拥塞窗口翻倍。
    2.由于指数级增长快,很快就会出现确认包超时。
    3.设置慢启动阈值,它的值为拥塞窗口的大小的一半。
    4.将拥塞窗口大小设置为1,重新进入慢启动过程。
    5.慢启动阈值存在,当拥塞窗口大小达到阈值时,不再翻倍,而是线性增长。
    6.随窗口大小的不断增长,可以收到三次重复的ACK,进入“快速重发”阶段。
    7.TCp将慢启动阈值设置为当前拥塞窗大小的一半,再将拥塞窗口大小设成阈值大小。
    8.拥塞窗口又会线性增加,直至下一次出现3次ACK或者超时。

    相关文章

      网友评论

        本文标题:计算机网络TCP/IP等相关协议与原理

        本文链接:https://www.haomeiwen.com/subject/iuwxrttx.html