在说Socket之前我们来回顾下OSI,开放系统互连参考模型 (Open System Interconnect 简称OSI)
- 物理层 (Physical Layer)
在局部局域网上传送帧,它负责管理电脑通信设备和网络媒体之间的互通,将这些比特流(0101)与光电信号进行转换。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机适配器等
- 数据链路层 (Data Link Layer)
又叫MAC层,数据在这一层不再是以比特流的形式传输, 而是分割成一个一个的帧再进行传输。当表头和表尾被加至IP数据报时,会形成了帧。负责网络寻址、错误侦测和改错。数据链表头是包含了物理地址(mac地址),数据链表尾(DLT)是一串指示数据包末端的字符串。表示如以太网、无线局域网(WiFi)和GPRS等。目的地址 : 接收方48位的MAC地址
MAC地址mac帧格式.png
又称计算机的硬件地址, 被固化在适配器(网卡)ROM上的占48位的地址. MAC地址可以用来唯一区别一台计算机, 因为它在全球是独一无二的。
网桥和交换机
网桥工作在数据链路层, 根据MAC帧的目的地址对收到的帧进行转发和过滤。交换机实际上就是一个多接口的网桥, 以太网交换机的每个接口都直接与一个单个主机或另一个集线器相连, 可以很容易实现VLAN(虚拟局域网,在一个交换机上再分割),交换机保证每个端口共享一样的带宽,集线器的话就平分
- 网络层 (Network Layer)
决定数据的路径选择和转寄,如果只有数据链路层没有网络层, 数据就只能在同一条链路上传输, 不能跨链路传输. 有了网络层, 数据便能跨域不同的数据链路传输,里面传输的是分组(又叫数据包)
IP地址
IP地址又称为软件地址, IPv4地址为32位, IPv6地址为128位,IP分组中首部的源地址和目的地址在传输中不会改变, MAC帧中首部的源地址和目的地址每到一个路由器会改变一次(因为每次都在不同的链路上传输)
IP地址划分
A类地址 : 0.0.0.0 ~ 127.0.0.0,以0开头,网络号占8位(第一段)
B类地址 : 128.0.0.0 ~ 191.255.0.0,以10开头,网络号占16位(前两段)
C类地址 : 192.0.0.0 ~ 223.255.255.0,以110开头,网络号占32位(前三段)
D类地址:224.0.0.0 ~ 239.255.255.255是,D类地址(224-239)是多播地址,不用做主机地址
划分子网之后的IP地址
IP地址 = {<网络号>, <子网号>, <主机号>}
例如某单位拥有一个B类IP地址, 145.13.0.0, 但凡目的地址为145.13.x.x的数据报都会被送到这个网络上的路由器R. 内部划分子网后变成 : 145.13.3.0, 145.13.7.0, 145.13.21.0. 但是对外仍表现为一个网络, 即145.13.0.0. 这样路由器R收到报文后, 再根据目的地址发到对应的子网上.
同时在网络层工作的还是有ICMP,ARP,RARP
- 传输层 (Transport Layer)
把传输表头(TH)加至数据以形成数据包。传输表头包含了所使用的协议等发送信息。例如:传输控制协议义(TCP)等。里面数据单位是数据段
- 表示层 (Presentation Layer)
把数据转换为能与接收者的系统格式兼容并适合传输的格式。
- 会话层(Session Layer)
负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接
- 应用层(Application Layer)
提供为应用软件而设的界面,以设置与另一应用软件之间的通信。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。
这里不对HTTP做细讲
事实上OSI七层模型太过于理想化,现实的生产环境下比较少用上。更多的是如下图右边的模型

公网IP和私网IP
公网IP指的是Internet上的非保留地址,
内网接入方式:计算机得到的地址是Inetnet上的保留地址,保留地址有如下3种:
A 类:10.0.0.0~10.255.255.255
B 类:172.16.0.0~172.31.255.255
C 类:192.168.0.0~192.168.255.255
在百度直接搜索IP会显示公网IP,在cmd中输入ipconfig,或者在Linux终端下输入ifconfig,会显示出私有ip,
内网的计算机以NAT(网络地址转换)协议,实现内网的IP地址与公网的地址之间的相互转换,将大量的内网IP地址转换为一个或者少量的公网IP地址,并通过这一个地址连接Internet,减少对公网IP地址的占用。内网的计算机可向Internet上的其他计算机发送连接请求,但Internet上其他的计算机无法向内网的计算机发送连接请求。
DHCP
DHCP(Dynamic Host Configuration Protocol, 动态主机配置协议)服务器来自动给网络中的电脑分配IP地址、子网掩码和默认网关 。这样做的好处是一旦网络的默认网关发生了变化时,只要更改了DHCP服务器中默认网关的设置,那么网络中所有的电脑均获得了新的默认网关的IP地址
ARP
地址解析协议ARP(Address Resolution Protocol)
工作在网络层,将IP地址转换为链路层用的物理地址
IPV6
128位的地址按每16位划分为一个段,将每个段转换成十六进制数字,并用冒号隔开。最大值是ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff
这个地址很长,可以用两种方法对这个地址进行压缩
前导零压缩法:
将每一段的前导零省略,但是每一段都至少应该有一个数字
例如:2000:0:0:0:1:2345:6789:abcd
双冒号法:
如果一个以冒号十六进制数表示法表示的IPv6地址中,如果几个连续的段值都是0,那么这些0可以简记为::。每个地址中只能有一个::。
例如:2000::1:2345:6789:abcd
