[Java 网络编程 01] 计算机网络部分 2021.11.10
网络基础部分:
IP层不提供可靠的网络转发,即网络系统不可靠,可靠性是由连接到网络的主机运输层所把握控制的
-
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
-
设备所在的层:
传输层及以上: 网关 gateway
IP网际层:路由器 router
数据链路层: 网桥 bridge
物理层: 转发器 repeater
-
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.
-
子网划分
把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 不能划分子网
-
CIDR无分类编码(构造超网)
IP地址又变为了两级,:: = {<网络前缀><主机号>}
记录方法:斜线记法,最后面把网络前缀的个数记下来 128.14.35.7/20 即,前20个是网络前缀,后12个是主机号
-
IPV6
-
地址划分
3类 单播地址(Unicast):只交付给一个计算机 多播地址(multicast):交付给一组计算机 任播地址(anycast):交付给一组计算机中的一个,通常是距离最近的一个
-
地址表示
冒号16进制记法(16个8字节,-->, 8个 16字节,表示:8个4位数16进制
- 零压缩策略:一连串的0可以使用一对冒号表示,但一个地址中只能使用一次零压缩策略
FF05:0:0:0:0:0:0:B3,可以压缩为:FF05::B3
-
可结合使用点分十进制记法的后缀
0:0:0:0:0:0:128.10.2.1 # 前面有6个16进制的0,后面又4个字节的10进制地址,总共16个字节 也可以表示为 ::128.10.2.1
-
-
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