[Java 网络编程 01] 计算机网络部分 2021.11.10

网络基础部分:

IP层不提供可靠的网络转发,即网络系统不可靠,可靠性是由连接到网络的主机运输层所把握控制的

  1. TCP/IP 体系:

    应用层 Application Layer(SMTP, POP3)

    传输层 Transport Layer(TCP, UDP)//Transmission control protocol, User Datagram protocol

    IP网际层 Network Layer(IP) //Internet Protocol//其中,IP层时虚拟网络,是一个由多个路由器组成的网络

    数据链路层 Data Link Layer

  2. 设备所在的层:

    传输层及以上: 网关 gateway

    IP网际层:路由器 router

    数据链路层: 网桥 bridge

    物理层: 转发器 repeater

  3. IP地址

    Ipv4: 32位,占四个字节 ::={网络号}{主机号}
    A类:8位网络号:24位主机号,网络号第一位数位0
    B类:16位网络号,16位主机号,网络号一二位数位10
    C类:24位网络号,8位主机号,网络号前三位:110
    

    IP地址的网络号中,全0表示本网络,全1表示本机地址loopback test(回环测试)本机:127.0.0.1

    主机号中,全0表示连接到的单个网络地址(主机在5.2.3.4;网络地址位5.0.0.0)全1 表示该网络下的全部主机

    A类,主机号全0和全1保留

    B类,主机号10后面的全0保留

    C类,主机号110后面的全0保留

    网络号范围:
    A类:0 0000001~0 1111110, 1~126, //127保留给本地回环测试
    B类:10 000000:00000001~10 111111:11111111, 128.1 ~191.255
    C类:110 00000:00000000:00000001~110 11111:11111111:11111111 //192.0.1~ 223.255.255
    

    一个路由器必然连接两个网络,所以要由两个网络号,两个局域网的路由器相连,路由器中间的连线构成特殊网络,即只包含一段连线的网络(但有IP地址),通常为了节省IP资源,对这段网络不分配IP地址,即无编号网络/无名网络anonymous /unnumbered network.

  4. 子网划分

    把IP地址分为三级结构,对外依然是两级 ::= {网络号}{子网号}{主机号}

    子网掩码(subnet mask):网络地址的部分(包括网络号和子网号)全部是1,主机号全部是0

    eg: 143.13.3.10,如果划分8位子网,则子网掩码为:255.255.255.0//因为是B类地址,所以子网号有8位。

    获取一个IP地址网络号的方法:IP地址 与运算 子网掩码 可获得(不管有没有子网划分)

    一个网络如果不划分子网,则默认子网掩码正好为网络号,则A类默认子网掩码:255.0.0.0,B类默认:255.255.0.0


    子网号的子网划分数量:

    eg: 一个B类网络的子网掩码为:255.255.192.0 (192:1100 0000)

    则这个B类地址下的子网数为:255.255.0100 0000,和255.255.1000 0000, 其中,全0和全1 不能划分子网

  5. CIDR无分类编码(构造超网)

    IP地址又变为了两级,:: = {<网络前缀><主机号>}

    记录方法:斜线记法,最后面把网络前缀的个数记下来
    128.14.35.7/20 即,前20个是网络前缀,后12个是主机号
    
  6. IPV6

    • 地址划分

      3类
      单播地址(Unicast):只交付给一个计算机
      多播地址(multicast):交付给一组计算机
      任播地址(anycast):交付给一组计算机中的一个,通常是距离最近的一个
      
    • 地址表示

      冒号16进制记法(16个8字节,-->, 8个 16字节,表示:8个4位数16进制
      
      1. 零压缩策略:一连串的0可以使用一对冒号表示,但一个地址中只能使用一次零压缩策略
      FF05:0:0:0:0:0:0:B3,可以压缩为:FF05::B3
      
      1. 可结合使用点分十进制记法的后缀

        0:0:0:0:0:0:128.10.2.1 # 前面有6个16进制的0,后面又4个字节的10进制地址,总共16个字节
        也可以表示为 ::128.10.2.1
        
  7. TCP三次握手/四次挥手(连接建立与连接释放)

    三次握手:

    A --> SYN = 1, seq = x						B
    A <-- SYN = 1, ACK = 1, seq = y, ack = x +1	  B
    A --> ACK = 1, seq = x+1, ack = y+1			 B
    

    四次挥手:

    A --> FIN = 1, seq = u						B
    A <-- ACK = 1, seq = v, ack = u +1			 B
    A <-- FIN = 1, ACK = 1, seq = w, ack = u+1	  B
    A --> ACK = 1, seq = u+1, ack = w + 1		 B
    
posted @ 2021-11-10 16:45  Roy2048  阅读(60)  评论(0)    收藏  举报