zoukankan      html  css  js  c++  java
  • 计算机网络基础知识随记

    最近复习了一下计算机网络基础知识,觉得将总结的要点记录下来,以待将来。

    • 网络拓扑结构
    1. 星型拓扑结构
    2. 网型拓扑结构
    • IP地址
    1. 32位2进制数字,每八位用点分隔。
    2. IP地址分为网络部分和主机部分。
    3. IP地址分为A/B/C/D/E五类,A/B/C最常见。
    4. A类地址:8bits network | 24bits host 第一个八位组范围:00000000~01111111 :0~127 首尾保留:故A类地址有效范围为:1~126.主机部分也不能全为0或全为1,(全0为网络ID,全1为本网络广播地址)。最大可用主机数:224-2
    5. B类地址:16bits network | 16bits network 网络范围:10000000.00000000~10111111.11111111:128~191,最大可用主机数为:216-2.
    6. C类地址:24bits network | 8bits host 网络范围:11000000.00000000.00000000~11011111.11111111.11111111:192~223 ,最大可用主机数为:28-2.
    7. D类地址:组播通信地址。
    8. E类地址:科学研究保留地址。
    9. 私有地址:(企业内网使用,不能在Internet上使用)
      1. 10.0.0.0~10.255.255.255
      2. 172.16.0.0~172.31.255.255
      3. 192.168.0.0~192.168.255.255
    • 子网掩码
    1. 网络地址相同的两个IP:同一网段
    2. 网络地址不同的两个IP:不同网段
    3. 子网掩码:对应IP中网络部分用1表示,主机部分用0表示
    4. 子网掩码 && IP地址 = 网络地址
    • OSI参考模型
    1. 应用层:
    2. 表示层:数据表示,安全,压缩
    3. 会话层:Token
    4. 传输层:进程选择、端口号
    5. 网络层:IP地址
    6. 数据链路层:MAC地址
    7. 物理层:
    • TCP.IP五层模型
    1. 应用层:HTTP/FTP/TFTP/SMTP/SNMP/DNS
    2. 传输层:TCP/UDP
    3. 网络层:IP:ARP/RARP/ICMP/IGMP
    4. 数据链路层:
    5. 物理层
    • 数据封装过程
    1. 应用层:转为二进制
    2. 传输层:将上层数据分段,封装TCP报文头部,TCP头部有端口号
    3. 网络层:将上层数据封装IP头部,IP头部中包含目标IP与源IP
    4. 数据链路层:将上层数据封装MAC头部,包含目标MAC地址与源MAC地址
    5. 物理层:传输信号
    • 数据解封过程
    1. 物理层:将电信号转为二进制,传至数据链路层
    2. 数据链路层:查看目标MAC地址,相同则拆掉MAC头部,将剩余数据传上层,不同则丢弃数据。
    3. 网络层:查看目标IP地址,相同则拆掉IP头部,将剩余数据传至上层,不同则丢弃数据。
    4. 传输层:根据TCP头部判断送往那个应用程序,然后将分组数据段充足送往应用层。
    5. 应用层:解码二进制数据,进行还原操作。
    • 网络中各层典型设备
    1. 应用层:计算机
    2. 传输层:防火墙
    3. 网络层:路由器
    4. 数据链路层:交换机
    5. 物理层:网卡
    • TCP/UDP协议
      • TCP协议
      1. TCP报文段
        1. TCP将若干字节构成一个分组,称为报文段。TCP报文段封装在IP数据报中。
        2. TCP报文段首部长度20~60字节,各字段含义如下:
          • 源端口号:16位字段,为发送方进程对应的端口号。
          • 目标端口号:16位字段,对应的是接收端的进程。
          • 序号:当TCP从进程接收数据字节时,把它们存储在发送缓存中,并对每一个字节进行编号。当所有字节都被编号后,TCP就给每个报文段指派一个序号,就是该报文段中第一个字节的编号。当数据到达目的地后,接收端会按照这个序号将数据重新排列,保证数据的正确性。
          • 确认号:确认号是对发送端的确认信息,用它告诉发送端这个序号之前的数据段都收到。
          • 首部长度:20~60字节。
          • 保留:暂未用到。
          • 控制位:
            • URG:紧急指针有效位
            • ACK:只有当此位为1,确认序列号字段才有效。
            • PSH:标志位为1时要求接收方尽快将数据段送达应用层。
            • RST:当此位为1时通知重新建立TCP连接。
            • SYN:同步序号位,需要建立TCP连接时将这个值设为1.
            • FIN:需要断开连接时,提出断开连接方将此设为1.
          • 窗口值:网络通畅时可将窗口值变大加快传输速率,网络不佳时将窗口值变小保证可靠传输。
          • 校验和:发送端计算校验和,当数据到达目的地时再计算一次,相同则认为数据基本正确,否则将数据丢弃。
          • 紧急指针:和URG配合使用,当URG为1时有效。
          • 选项:在TCP首部可有多达40字节的可选信息。
      2. TCP连接:
        1. 建立连接(三次握手)
          • 第一次握手:发送端SYN控制位置1,其余5位都为0.
          • 第二次握手:分两步
            1. 接收端收到发送端请求,向发送端回复确认信息,TCP的ACK置1,其余5位为0,而且确认序列号是发送的初始序列号+1.
            2. 接收端也向发送端发送建立连接的请求,和第一次握手一样,SYN置1,其余5位为0.
            3. 注:为了提高效率,一般这两步放在一个数据包里实现。
          • 第三次握手:发送端接收到接收端回复,也要向其回复一个确认信息,TCP的ACK置1,其余5位为0,确认序列号是接收端初始序列号+1.
        2. 切断连接(四次握手)
          • 发送端向客户端发送FIN和ACK置1的TCP报文段。
          • 接收端向发送端返回ACK置1的TCP报文段。
          • 接收端向发送端发送FIN和ACK置1的TCP报文段。
          • 发送端向接收端返回ACK置1的TCP报文段。
      • UDP协议
        • 可靠性差,可靠性由上层协议保证。
        • 结构简单,传输时开销小。

          暂时总结到这里,谢谢~     

  • 相关阅读:
    架构设计:系统存储(1)——块存储方案(1)
    《Linux设备节点创建》用户空间ueventd创建设备节点规则
    架构设计:系统间通信(45)——阶段性问题记录
    队列
    链栈
    顺序栈
    入栈问题
    队列
    数学表达式配对栈
    链表设置
  • 原文地址:https://www.cnblogs.com/fly-to-the-sky/p/9638288.html
Copyright © 2011-2022 走看看