标题：网络互联基础
OSI七层协议
OSI(Open System interconnection)开放系统互连参考模型
ISO(International Standards Organization)国际标准化组织物理层机械性能：接口的形状，尺寸的大小，引脚的数目和排列方式等。
电气性能：接口规定信号的电压、电流、阻抗、波形、速率及平衡特性等。
工程规范：接口引脚的意义、特性、标准。
工作方式：确定数据位流的传输方式，如：单工、半双工或全双工。
物理层协议有：
美国电子工业协会(EIA)的RS232，RS422，RS423，RS485等；
国际电报电话咨询委员会(CCITT)的X.25、X.21等；
物理层的数据单位是位(BIT)，典型设备是集线器HUB。链路层链路层屏蔽传输介质的物理特征，使数据可靠传送。
内容包括介质访问控制、连接控制、顺序控制、流量控制、差错控制和仲裁协议等。
链路层协议有：
协议有面向字符的通讯协议(PPP)和面向位的通讯协议(HDLC)。
仲裁协议：802.3、802.4、802.5，即：
CSMA/CD(Carrier Sense Multiple Access with Collision Detection)、Token 
Bus、Token Ring
链路层数据单位是帧，实现对MAC地址的访问，典型设备是交换机Switch。网络层网络层管理连接方式和路由选择。
连接方式：虚电路(Virtual Circuits)和数据报(Datagram)服务。
虚电路是面向连接的(Connection-Oriented)，数据通讯一次路由，通过会话建立的一条
通路。
数据报是非连接的(Connectionless-Oriented)，每个数据报都有路由能力。
网络层的数据单位是包，使用的是IP地址，典型设备是路由器Router。
这一层可以进行流量控制，但流量控制更多的是使用第二层或第四层。传输层提供端到端的服务。可以实现流量控制、负载均衡。
传输层信息包含端口、控制字和校验和。
传输层协议主要是TCP和UDP。
传输层位于OSI的第四层，这层使用的设备是主机本身。会话层会话层主要内容是通过会话进行身份验证、会话管理和确定通讯方式。
一旦建立连接，会话层的任务就是管理会话。表示层表示层主要是解释通讯数据的意义，如代码转换、格式变换等，使不同的终端可以表示。
还包括加密与解密、压缩与解压缩等。应用层应用层应该是直接面向用户的程序或服务，包括系统程序和用户程序，
例如www、FTP、DNS、POP3和SMTP等都是应用层服务。
数据在发送时是数据从应用层至物理层的一个打包的过程，
接收时是数据从物理层至应用层的一个解包的过程，
从功能角度可分为三组，1、2层解决网络信道问题，3、4层解决传输问题，5、6、7层处
理对应用进程的访问。
从控制角度可分为二组，第1、2、3层是通信子网层，第4、5、6、7层是主机控制层。
TCP/IP 协议簇
TCP/IP(Transmission Control Protocol/Internet Protocol)已成为一个事实上的工业
标准。
TCP/IP是一组协议的代名词，它还包括许多协议，组成了TCP/IP协议簇。
TCP/IP协议簇分为四层，IP位于协议簇的第二层(对应OSI的第三层)，TCP位于协议簇的第
三层(对应OSI的第四层)。
TCP和IP是TCP/IP协议簇的中间两层，是整个协议簇的核心，起到了承上启下的作用。接口层TCP/IP的最低层是接口层，常见的接口层协议有：
Ethernet 802.3、Token Ring 802.5、X.25、Frame reley、HDLC、PPP等。网络层网络层包括：IP(Internet Protocol)协议、ICMP(Internet Control Message Protocol)
控制报文协议、ARP(Address Resolution Protocol)地址转换协议、RARP(Reverse ARP)反向
地址转换协议。
IP是网络层的核心，通过路由选择将下一跳IP封装后交给接口层。IP数据报是无连接服务
。
ICMP是网络层的补充，可以回送报文。用来检测网络是否通畅。
Ping命令就是发送ICMP的echo包，通过回送的echo relay进行网络测试。
ARP是正向地址解析协议，通过已知的IP，寻找对应主机的MAC地址。
RARP是反向地址解析协议，通过MAC地址确定IP地址。比如无盘工作站和DHCP服务。传输层传输层协议主要是：传输控制协议TCP(Transmission Control Protocol)和用户数据报协
议UDP(User Datagram rotocol)。
TCP是面向连接的通信协议，通过三次握手建立连接，通讯时完成时要拆除连接，由于TCP
是面向连接的所以只能用于点对点的通讯。
TCP提供的是一种可靠的数据流服务，采用“带重传的肯定确认”技术来实现传输的可靠
性。TCP还采用一种称为“滑动窗口”的方式进行流量控制，所谓窗口实际表示接收能力，用
以限制发送方的发送速度。 
UDP是面向无连接的通讯协议，UDP数据包括目的端口号和源端口号信息，由于通讯不需要
连接，所以可以实现广播发送。
UDP通讯时不需要接收方确认，属于不可靠的传输，可能会出丢包现象，实际应用中要求
在程序员编程验证。应用层应用层一般是面向用户的服务。如FTP、TELNET、DNS、SMTP、POP3。
FTP(File Transmision Protocol)是文件传输协议，一般上传下载用FTP服务，数据端口
是20H，控制端口是21H。
Telnet服务是用户远程登录服务，使用23H端口，使用明码传送，保密性差、简单方便。
DNS(Domain Name Service)是域名解析服务，提供域名到IP地址之间的转换。
SMTP(Simple Mail Transfer Protocol)是简单邮件传输协议，用来控制信件的发送、中
转。　 
POP3(Post Office Protocol 3)是邮局协议第3版本，用于接收邮件。
数据格式：
数据帧：帧头+IP数据包+帧尾 (帧头包括源和目标主机MAC地址及类型,帧尾是校验字)
IP数据包：IP头部+TCP数据信息 (IP头包括源和目标主机IP地址、类型、生存期等)
IP数据信息：TCP头部+实际数据 (TCP头包括源和目标主机端口号、顺序号、确认号、校
验字等)
TCP连接的建立
1、TCP连接通过三次握手完成。
client首先请求连接，发一个SYN包；Server收到后回应SYN_ACK包；Client收到后再
发ACK包。即：
Client Server
SYN ---> 收
<--- SYN+ACK
ACK ---> 收
established表示建立状态，当某端发出数据包后收到了回应则进入established状态。
在TCP/IP连接时，如果两端都是established状态，则握手成功，否则是无连接或半联接状
态。
2、套接字Socket
套接字Socket由协议、IP地址和端口号组成，套接字表示一路通讯，一般是一个服务，如
www服务是TCP的80端口，Telnet是TCP的23端口。
IP地址划分
IP地址分类IP地址有四个段，包括网络标识和主机标识两部分：netid+hostid。
IP地址应用分为A、B、C三类，D、E类是保留和专用的。
Class A 0******* xxxxxxxx xxxxxxxx xxxxxxxx
Class B 10****** ******** xxxxxxxx xxxxxxxx
Class C 110***** ******** ******** xxxxxxxx
Class D 1110**** ******** ******** ********
Class E 1111**** ******** ******** ********地址区间址址类 地址区间 网络数 主机数
A 类 1.0.0.1～126.255.255.254 27-2=126 224-2=16777214
B 类 128.0.0.1～191.255.255.254 214-2=16382 216-2=65534
C 类 192.0.0.1～223.255.255.254 221-2=2097150 28-2=254
D 类 224.0.0.1～239.255.255.255 228=268435456 0
E 类 240.0.0.1～255.255.255.255 228=268435456 0特殊地址主机地址全0表示为一个网络地址。
主机地址全1表示为对应网络的广播地址。
全0的IP地址：0.0.0.0，表示本机地址，只在启动过程时有效。
全1的IP地址255.255.255.255，表示本地广播(有的软件不支持)。
私有地址：
10.0.0.0 - 10.255.255.255
172.16.0.0 - 172.31.255.255
192.168.0.0 - 192.168.255.255
127.0.0.0网络是回环网络loopback，用于本机测试。例如：
ping 127.0.0.1 是测试本机网卡是否工作正常。子网掩码
子网掩码用来区分网络地址和主机地址，标准的子网掩码为：
A 类： 1.0.0.1～126.255.255.254 netmask：255.0.0.0
B 类：128.0.0.1～191.255.255.254 netmask：255.255.0.0
C 类：192.0.0.1～223.255.255.254 netmask：255.255.255.0
子网掩码和IP地址的“与”运算得出对应的网络地址。
如果将子网掩码“1”的位数增加则网络地址数增加，形成子网。相当于网络的分隔。
如果将子网掩码“1”的位数减小则网络地址数减少，形成超网。相当于网络的聚合。