• 计算机网络 复习


    2021/2/8

    1. OSI七层模型,TCP/IP四层模型,五层模型

    OSI:物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

    TCP/IP:网络接口层,网际层,传输层,应用层

    五层:物理层,数据链路层,网络层,传输层,应用层

    2. 三次握手(TCP建立连接)

    第一次握手:

    客户端发送SYN=1,seq=x(随机)的报文到服务端,并进入SYN-SENT(同步已发送状态)。(这里SYN是同步位,SYN=1表示连接请求或连接接受报文,这种报文不能携带数据);

    第二次握手:

    服务端向客户端发送报文SYN=1,ACK=1,seq=y(随机),ack=x+1(虽然x是瞎说的,但是我要x+1表示确认),并进入SYN-RCVD(同步已确认接收)。(ACK是确认位,建立连接后的所有ACK都应为1);

    第三次握手:

    客户端收到服务端的报文后,再发送报文ACK=1,seq=x+1(其实这个报文段可以携带数据了,但如果不携带,则不消耗序列号,所以下一个号仍是x+1),ack=y+1(对服务端y的确认),并进入连接已建立状态。随后服务器收到该报文后也会进入连接已建立状态。

     为什么是三次:防止已过期的请求报文突然传到服务器,产生错误的连接,服务器资源浪费。

    3. 四次挥手(TCP连接释放)

    四次:客,服,服,客

    第一次挥手:FIN为终止位,表示释放连接请求,FIN=1的报文段无数据但也消耗一个序列号,seq=u是上一次传输的序列号+1,ack=v是上一次服务器发来的+1;

    第二次挥手:由服务器发,所以v就是服务器之前发的+1,ack=u+1就是确认上一报文;

    第三次挥手:第二次到第三次之间,客户端不给服务器发了,但是服务器仍可以给客户端发,seq=w就是表面这段时间可能又发了一些,w是最新上一个序列号+1;

    第四次挥手:发送确认,服务器收到后彻底关闭,客户端等2个MSL(最长报文段寿命)后关闭。

    为什么是四次:因为客户端停止给服务器发了,服务器可能还有给客户端没发完的。

    4. 以太网MAC帧结构

    1500字节就是在传输过程中的最大传输单元,也称为MTU,是指在传输数据过程中允许报文的最大长度。 

    5. 点对点协议PPP帧

    注:ppp(点对点)属于广域网范畴,MAC是局域网范畴;点对点链路属于广域网了,不再是以太网(局域网)所以不用ARP协议。

    6. MAC地址,IP地址,ARP协议

    (1)MAC地址:也称物理地址,硬件地址

    (2)IP地址:网络号+主机号

    (3)ARP协议:知道IP地址寻找MAC地址,先ARP高速缓存表,再广播,收到的响应是单播;类似的有RARP,是MAC找IP。

    7. IPv4地址

    (1)分类编址

    注意:A类网络号中0和127也不能用,所以再-2;B,C不用-2

    (2)子网划分

    直接分配一个B类网络有65534个主机,如果用不完会浪费,所以可以取出一部分主机号位,用于子网划分;

    子网掩码 & IP地址 = 网络号;

    默认子网掩码:A类网8个1,B类网16个1,C类网24个1

    (3)无分类编址的IPv4

    8. IP数据报首部格式

    9. 网际控制报文协议ICMP(IP层)

    为了提高交付成功的机会,网际层使用ICMP协议;主机或路由器使用ICMP来发送差错报告报文和询问报文。

    差错报告报文有:终点不可达,源点抑制,时间超过,参数问题,改变路由

    询问报文有:回送请求和回答,时间戳请求和回答

    10. 如何理解IP的不可靠和无连接

    不可靠:指的是不能保证数据报能成功地到达目的地。发生错误时候,丢弃该数据包,发送 ICMP 消息给信源端。

    无连接:IP 不维护关于后续数据报的状态信息。可能发过去到达顺序不一样。
     

    11. TCP拥塞控制

    第一组:慢开始+拥塞避免

    第二组:快重传(要求接收方不是等到发送数据时捎带确认,而是收到后立即发送确认报文;发送方一旦收到三个累计确认报文段,就对该报文立即重传,而不是等超时)

    +快恢复(门限值设置为当前窗口的一半,而不是降到1)

    12. TCP可靠传输

    滑动窗口+累计确认

    13. TCP首部格式

    TCP在发送数据时,是从缓存中取出一部分或全部字节并给其添加一个首部来使其成为TCP报文段后进行发送。

    TCP首部如下:

     序号与确认号即seq,ack

    14. 应用层协议

    (1)HTTP超文本传输协议:用于客户端与服务器之间通信的万维网协议

                            

    (2)DNS域名系统:将具有特定含义的主机名(域名)转为便于机器处理的IP地址

    DNS报文主要使用运输层的UDP协议封装,端口号53;

    域名查询方式有递归查询,迭代查询

    (3)FTP文件传输协议

    FTP客户与服务器之间建立两个并行的TCP连接;

    21端口用于控制连接,传输FTP相关命令;

    20端口用于数据连接,文件传输时才建立,传输结束就关闭,如果非主动模式则不一定是20端口。

    (4)SMTP简单邮件传送协议

    基于TCP连接,端口号25;只能传送ASCll码文本。

    15. NAT网络地址转换协议

    所有使用本地地址(私网IP地址)的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。

    16. 输入网址到网页显示的整个流程

    (1)输入www.baidu.com之后,通过DNS域名系统将域名解析成IP地址

     先递归查询本地域名服务器,在迭代查询根、顶级、权限域名服务器

    (2)基于http协议发送http请求报文

    (3)浏览器接收响应报文,在浏览器渲染成页面

    17. TCP一方断开

    如果TCP连接中,一方异常断开,则发送方发送数据后收不到确认包,会尝试重传几次,几次失败后会发送一个RST包,会收到对方状态为CLOSED或LISTEN。

  • 相关阅读:
    u-boot 移植 --->5、友善之臂Tiny210底板王网卡驱动移植
    Linux 驱动框架---驱动中的中断
    Linux 驱动框架---驱动中的并发
    Linux 驱动框架---platform驱动框架
    Linux内核实现透视---软中断&Tasklet
    Linux内核实现透视---硬中断
    u-boot 移植 --->4、Tiny210核心板的DDR初始化下详解
    redis缓存的安装和使用
    ArrayList、LinkedList、Vector的区别
    Java中的IO流系统详解
  • 原文地址:https://www.cnblogs.com/Kinghao0319/p/14391602.html
Copyright © 2020-2023  润新知