一、OSI七层协议

    OSI(Open System interconnection)开放系统互连参考模型
    ISO(International Standards Organization)国际标准化组织
 
 1、物理层
    机械性能:接口的型状,尺寸的大小,引脚的数目和排列方式等。
    电气性能:接口规定信号的电压、电流、阻抗、波形、速率及平衡特性等。
    工程规范:接口引脚的意义、特性、标准。
    工作方式:确定数据位流的传输方式,如:单工、半双工或全双工。
    物理层协议有:
    美国电子工业协会(EIA)的RS232,RS422,RS423,RS485等;
    国际电报电话咨询委员会(CCITT)的X.25、X.21等;
    物理层的数据单位是位(BIT),典型设备是集线器HUB。
 
 2、链路层
    链路层屏蔽传输介质的物理特征,使数据可靠传送。
    内容包括介质访问控制、连接控制、顺序控制、流量控制、差错控制和仲裁协议等。
    链路层协议有:
    协议有面向字符的通讯协议(PPP)和面向位的通讯协议(HDLC)。
    仲裁协议:802.3、802.4、802.5,即:
    CSMA/CD(Carrier Sense Multiple Access with Collision Detection)、Token 
Bus、Token Ring
    链路层数据单位是帧,实现对MAC地址的访问,典型设备是交换机Switch。
 
 3、网络层
    网络层管理连接方式和路由选择。
    连接方式:虚电路(Virtual Circuits)和数据报(Datagram)服务。
    虚电路是面向连接的(Connection-Oriented),数据通讯一次路由,通过会话建立的一条
通路。
    数据报是非连接的(Connectionless-Oriented),每个数据报都有路由能力。
    网络层的数据单位是包,使用的是IP地址,典型设备是路由器Router。
    这一层可以进行流量控制,但流量控制更多的是使用第二层或第四层。
 
 
 4、传输层
    提供端到端的服务。可以实现流量控制、负载均衡。
    传输层信息包含端口、控制字和校验和。
    传输层协议主要是TCP和UDP。
    传输层位于OSI的第四层,这层使用的设备是主机本身。 
 
 5、会话层
    会话层主要内容是通过会话进行身份验证、会话管理和确定通讯方式。
    一旦建立连接,会话层的任务就是管理会话。
    
 6、表示层
    表示层主要是解释通讯数据的意义,如代码转换、格式变换等,使不同的终端可以表示。
    还包括加密与解密、压缩与解压缩等。
    
 7、应用层
    应用层应该是直接面向用户的程序或服务,包括系统程序和用户程序,
    例如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协议簇的中间两层,是整个协议簇的核心,起到了承上启下的作用。
 1、接口层
    TCP/IP的最低层是接口层,常见的接口层协议有:
    Ethernet 802.3、Token Ring 802.5、X.25、Frame reley、HDLC、PPP等。
 
 2、网络层
    网络层包括: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服务。
 
 3、传输层
    传输层协议主要是:传输控制协议TCP(Transmission Control Protocol)和用户数据报协
议UDP(User Datagram rotocol)。
    TCP是面向连接的通信协议,通过三次握手建立连接,通讯时完成时要拆除连接,由于TCP
是面向连接的所以只能用于点对点的通讯。
    TCP提供的是一种可靠的数据流服务,采用“带重传的肯定确认”技术来实现传输的可靠
性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,所谓窗口实际表示接收能力,用
以限制发送方的发送速度。    
 
    UDP是面向无连接的通讯协议,UDP数据包括目的端口号和源端口号信息,由于通讯不需要
连接,所以可以实现广播发送。
    UDP通讯时不需要接收方确认,属于不可靠的传输,可能会出丢包现象,实际应用中要求
在程序员编程验证。
 
 4、应用层
    应用层一般是面向用户的服务。如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地址划分
 1、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**** ******** ******** ********
 
 2、地址区间
    址址类 地址区间        网络数        主机数
    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
 
 3、特殊地址
    主机地址全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 是测试本机网卡是否工作正常。
 
 
 4、子网掩码
    子网掩码用来区分网络地址和主机地址,标准的子网掩码为:
    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”的位数减小则网络地址数减少,形成超网。相当于网络的聚合。