TCP/IP协议栈
2017-06-13 00:00
169 查看
摘要: TCP/IP协议栈
协议将复杂的网络元素有机的整合起来,实现资源的共享。
数据通信是实现了相同协议的软硬件相互配合完成的。
通信系统是由若干个相互关联的协议(协议族)共同完成的。
定义了完成协议功能的协议包的格式。
控制通讯的方式和顺序。
常见的协议族有OSI七层参考模型和TCP/IP通信模型、SPX/IPX、AppleTalk。
为了解决各个不同的厂商的设备互联的问题,废弃私有协议,使用公有协议,要使得不同的厂家的产品能够如预期那样在一起工作,就必须用标准来保证,进行标准创建工作的组织有ISO,ITU-T,IEEE,EIA,ANSI.
OSI参考模型
OSI(Open System Interconnect)开放系统互连参考模型,是由ISO定义的,它是灵活的、稳健的和可互操作的模型,并不是协议,是用来了解和设计网络体系结构的。
OSI模型的目的
规范不同的系统的互联标准,使两个不同的系统能够较容易的通信,而不需要改变底层的硬件或者软件的逻辑。OSI RM定义了网络中设备所遵守的层次结构。
分层结构的优点
简化网络的操作。
提供设备间兼容性和标准接口。
促进标准化工作。
结构上可以分隔。
易于实现和维护。
重点是OSI并不是协议,是用来了解和设计网络体系结构的。
OSI七层功能如下:
其中,会话层以上主要面向用户应用,负责主机之间的数据传输。
传输层一下主要面向数据传输,负责网络数据的传输。
TCP/IP协议族
TCP/IP协议栈具有简单的分层设计,与OSI参考模型有着清晰的对应关系。
只是将应用层、表示层、会话层归纳为应用层。
通信原理
1.功能是由协议完成的,每层都有一些协议,完成各自独立的功能。
2.对等通信:相同层的相同协议之间交换PDU。
3.下层为上层提供服务:封装或拆装。
每一层利用下一层提供的服务于对等层进行通信,每一层使用自己的协议。相同层的相同协议之间交换协议数据单元PDU,PDU的格式为:|header|data|
数据封装和解封装过程
作为发送方把上层的数据,有一个由上而下逐层加协议头部组成本层协议包的过程--》封装;封装到二层为帧,由物理层串行化比特流(信号流),网络设备准备传输信号。
作为接收方,有一个由下而上逐层减去协议头部的过程--》拆装,到对等通信;
封装——每一层都把上层的协议包当成数据部分,加上自己的协议头部,组成自己的协议包.
中间网络设备基于自己的层次理解进行转发PDU,理解交换机、路由器他们也是层的设备,为通信提供服务的,看到不同层提供不层的服务。
以HTTP协议为例子进行说明。
HTTP的流程示意图如下:
Hypertext Transfer Protocol-超文本传输协议
用于传输Internet浏览器使用的普通文本、超文本、音频和视频等数据
端口号为TCP的80。
访问www.oschina.com的过程。
对于发起通信段的数据封装过程:
1.用户在IE上输入URL地址:http://www.oschina.com.
2.发起http的请求--(HTTP协议封装请求内容)
3.发起TCP连接的请求--(TCP封装HTTP)
4.操作系统通过DNS查询URL地址域名对应的IP地址
5.发起IP通信(IP封装TCP数据)
6.MAC通信(发起ARP请求,请求网关的MAC地址,封装二层数据)
7.将数据编码成能在物理链链路上传输的bit流,发送数据
数据在网络中间的传输过程:
数据在网络上经过各种网络、设备,每个设备逐跳把数据发送给下一个设备,最后把数据发送到了目的网络,目的网络的网关把数据发送给最终的服务器(对端)
对端服务器收到数据后如何处理
1.逐层解封装
2.回应数据
反复同样的过程实现端到端的通信。
使用源端口标识发送方的进程,随机分配>=1024
使用目标端口标识接收方的进程,人为指定<=1023,知名端口:如IP地址+端口号=socket
常用协议:
TCP(Transmission Control Protocol),传输控制协议。可靠的、面向连接的协议、传输效率低
UDP(User Datagram Protocol),用户数据报协议。不可靠的、无连接的服务、传输效率高
TCP:
在传输数据之前,必须先建立连接,协商资源预留,然后传输数 据,传完之后拆除连接。
在传输数据的过程中,解决可靠性、有序性、流量控制。
TCP报文格式:
UDP:
提供无连接的,不可靠无序的,无流量控制的传输服务
UDP报文格式:
负责将分组报文从源主机发送到目标主机
网络层作用
为网络中的设备提供逻辑地址
基于IP包和路由表决定如何转发数据;路由表的建立;负责数据包的寻径和转发
设备:路由器、多层交换机、防火墙
ICMP
ICMP(Internet Control Message Protocol)网络控制报文协议,是面向连接的协议,可以利用它得知网络的IP连通性,用于向源节点发送“错误报告”信息。
常用的工具有PING和TRACERT.
PING就是基于ICMP包测试网络层的连通性,带有TTL的存活时间,路由器每转发一次,则TTL-1。
设置TTL的目的是防止循环、探测IP包所经过的路径;PING通只能证明网络层及其下层的小的单播的少量的IP包能够双向联通。
Tracert主要是跟踪达到目标所经过的路径;
发送三个IP包,TTL=1,收到IP包 TTL-1;
如果TTL=0,则丢弃并报超时错误,如果是超时错误,则TTL+1.
ARP
地址解析协议。ARP Request和ARP Reply.
得到通信对端的IP地址所对应的MAC地址。
RARP
反向地址解析协议。
得到本机的IP地址。
LLC子层和MAC子层。
数据链路层的功能是,定义物理地址;网络拓扑结构;链路参数;差错验证;物理介质访问;流控制。
MAC地址的长度是48bit,通常表示成12个十六进制数,前6个十六进制数由IEEE管理,用来标识生产商或者厂商,常把这一部分叫做OUI(组织唯一标识符),余下的部分表示为具体的接口序列号,这一部分由厂商自己定义。
广域网与数据链路层
WAN数据链路层标准:
HDLC
PPP
ISDN
X.25
Frame Relay
WAN数据链路层设备:
Modem、ISDN终端适配器
CSU/DSU、广域网交换机
物理层的线缆主要有:
同轴电缆(coaxial cable):细缆和粗缆
双绞线(twisted pair):UTP、STP
光纤(fiber)
无线电波(wireless radio):无线局域网WLAN
线缆标准:
线缆标准:10Base-T、100Base-T、100Base-TX/FX、1000Base-T、1000Base-SX/LX;
网络设备:中继器、集线器等。
广域网的物理层:
DTE设备:路由器、终端主机等;
DCE设备:广域网交换机、Modem、CSU/DSU等;
常见接口:RS-232、V.24、V.35等。
协议将复杂的网络元素有机的整合起来,实现资源的共享。
协议
通信双方事先约定并共同遵守的标准或规则。数据通信是实现了相同协议的软硬件相互配合完成的。
通信系统是由若干个相互关联的协议(协议族)共同完成的。
定义了完成协议功能的协议包的格式。
控制通讯的方式和顺序。
常见的协议族有OSI七层参考模型和TCP/IP通信模型、SPX/IPX、AppleTalk。
为了解决各个不同的厂商的设备互联的问题,废弃私有协议,使用公有协议,要使得不同的厂家的产品能够如预期那样在一起工作,就必须用标准来保证,进行标准创建工作的组织有ISO,ITU-T,IEEE,EIA,ANSI.
OSI参考模型
OSI(Open System Interconnect)开放系统互连参考模型,是由ISO定义的,它是灵活的、稳健的和可互操作的模型,并不是协议,是用来了解和设计网络体系结构的。
OSI模型的目的
规范不同的系统的互联标准,使两个不同的系统能够较容易的通信,而不需要改变底层的硬件或者软件的逻辑。OSI RM定义了网络中设备所遵守的层次结构。
分层结构的优点
简化网络的操作。
提供设备间兼容性和标准接口。
促进标准化工作。
结构上可以分隔。
易于实现和维护。
重点是OSI并不是协议,是用来了解和设计网络体系结构的。
OSI七层功能如下:
应用层 | 提供应用程序间通信 |
表示层 | 处理数据格式、数据加密等 |
会话层 | 建立、维护和管理会话 |
传输层 | 建立主机端到端连接 |
网络层 | 寻址和路由选择 |
数据链路层 | 提供介质访问控制,链路管理 |
物理层 | 比特流传输 |
传输层一下主要面向数据传输,负责网络数据的传输。
TCP/IP协议族
TCP/IP协议栈具有简单的分层设计,与OSI参考模型有着清晰的对应关系。
只是将应用层、表示层、会话层归纳为应用层。
通信原理
1.功能是由协议完成的,每层都有一些协议,完成各自独立的功能。
2.对等通信:相同层的相同协议之间交换PDU。
3.下层为上层提供服务:封装或拆装。
每一层利用下一层提供的服务于对等层进行通信,每一层使用自己的协议。相同层的相同协议之间交换协议数据单元PDU,PDU的格式为:|header|data|
数据封装和解封装过程
作为发送方把上层的数据,有一个由上而下逐层加协议头部组成本层协议包的过程--》封装;封装到二层为帧,由物理层串行化比特流(信号流),网络设备准备传输信号。
作为接收方,有一个由下而上逐层减去协议头部的过程--》拆装,到对等通信;
封装——每一层都把上层的协议包当成数据部分,加上自己的协议头部,组成自己的协议包.
中间网络设备基于自己的层次理解进行转发PDU,理解交换机、路由器他们也是层的设备,为通信提供服务的,看到不同层提供不层的服务。
应用层协议
和应用程序协同工作,利用基础网络交换应用程序专用的数据。以HTTP协议为例子进行说明。
HTTP的流程示意图如下:
Hypertext Transfer Protocol-超文本传输协议
用于传输Internet浏览器使用的普通文本、超文本、音频和视频等数据
端口号为TCP的80。
访问www.oschina.com的过程。
对于发起通信段的数据封装过程:
1.用户在IE上输入URL地址:http://www.oschina.com.
2.发起http的请求--(HTTP协议封装请求内容)
3.发起TCP连接的请求--(TCP封装HTTP)
4.操作系统通过DNS查询URL地址域名对应的IP地址
5.发起IP通信(IP封装TCP数据)
6.MAC通信(发起ARP请求,请求网关的MAC地址,封装二层数据)
7.将数据编码成能在物理链链路上传输的bit流,发送数据
数据在网络中间的传输过程:
数据在网络上经过各种网络、设备,每个设备逐跳把数据发送给下一个设备,最后把数据发送到了目的网络,目的网络的网关把数据发送给最终的服务器(对端)
对端服务器收到数据后如何处理
1.逐层解封装
2.回应数据
反复同样的过程实现端到端的通信。
传输层协议
作用:提供端到端的传输服务;使用端口标识主机上的进程使用源端口标识发送方的进程,随机分配>=1024
使用目标端口标识接收方的进程,人为指定<=1023,知名端口:如IP地址+端口号=socket
常用协议:
TCP(Transmission Control Protocol),传输控制协议。可靠的、面向连接的协议、传输效率低
UDP(User Datagram Protocol),用户数据报协议。不可靠的、无连接的服务、传输效率高
TCP:
在传输数据之前,必须先建立连接,协商资源预留,然后传输数 据,传完之后拆除连接。
在传输数据的过程中,解决可靠性、有序性、流量控制。
TCP报文格式:
UDP:
提供无连接的,不可靠无序的,无流量控制的传输服务
UDP报文格式:
网络层协议
l网络层也叫Internet层负责将分组报文从源主机发送到目标主机
网络层作用
为网络中的设备提供逻辑地址
基于IP包和路由表决定如何转发数据;路由表的建立;负责数据包的寻径和转发
设备:路由器、多层交换机、防火墙
ICMP
ICMP(Internet Control Message Protocol)网络控制报文协议,是面向连接的协议,可以利用它得知网络的IP连通性,用于向源节点发送“错误报告”信息。
常用的工具有PING和TRACERT.
PING就是基于ICMP包测试网络层的连通性,带有TTL的存活时间,路由器每转发一次,则TTL-1。
设置TTL的目的是防止循环、探测IP包所经过的路径;PING通只能证明网络层及其下层的小的单播的少量的IP包能够双向联通。
Tracert主要是跟踪达到目标所经过的路径;
发送三个IP包,TTL=1,收到IP包 TTL-1;
如果TTL=0,则丢弃并报超时错误,如果是超时错误,则TTL+1.
ARP
地址解析协议。ARP Request和ARP Reply.
得到通信对端的IP地址所对应的MAC地址。
RARP
反向地址解析协议。
得到本机的IP地址。
数据链路层协议
局域网的数据链路层分为2个子层:LLC子层和MAC子层。
数据链路层的功能是,定义物理地址;网络拓扑结构;链路参数;差错验证;物理介质访问;流控制。
MAC地址的长度是48bit,通常表示成12个十六进制数,前6个十六进制数由IEEE管理,用来标识生产商或者厂商,常把这一部分叫做OUI(组织唯一标识符),余下的部分表示为具体的接口序列号,这一部分由厂商自己定义。
广域网与数据链路层
WAN数据链路层标准:
HDLC
PPP
ISDN
X.25
Frame Relay
WAN数据链路层设备:
Modem、ISDN终端适配器
CSU/DSU、广域网交换机
物理层协议
物理层协议主要是定义电压、接口、线缆标准、传输距离等。物理层的线缆主要有:
同轴电缆(coaxial cable):细缆和粗缆
双绞线(twisted pair):UTP、STP
光纤(fiber)
无线电波(wireless radio):无线局域网WLAN
线缆标准:
线缆标准:10Base-T、100Base-T、100Base-TX/FX、1000Base-T、1000Base-SX/LX;
网络设备:中继器、集线器等。
广域网的物理层:
DTE设备:路由器、终端主机等;
DCE设备:广域网交换机、Modem、CSU/DSU等;
常见接口:RS-232、V.24、V.35等。
相关文章推荐
- TCP/IP协议栈 之 IP协议
- TCP/IP协议栈初始化(十) ICMP带来的一段插曲 2
- TCP/IP协议栈概述及各层包头分析
- TCP/IP协议栈
- TCP/IP协议栈中IP层架构
- TCP/IP协议栈及OSI参考模型详解
- lwIP――TCP/IP协议栈的一种实现(2)
- linxu kernel version 1.0 TCP/IP 协议栈源代码分析2, TCP/IP协议栈启动分析 (按源代码中运行的顺序分析,Kernel startup)
- Linux TCP/IP协议栈剖析【体系结构篇】
- TCP/IP协议栈
- TI的TCP/IP协议栈--NDK .
- TCP/IP协议——TCP/IP协议栈及框架
- UIP tcp/ip协议栈在uCOS-II下的移植
- linux网络编程之TCP/IP基础(一):TCP/IP协议栈与数据报封装
- 应用程序与TCP/IP协议栈之间的关联
- 源码公开的TCP/IP协议栈在远程监测中的应用
- TCP/IP协议栈概述及各层包头分析
- 重新设计TCP/IP协议栈以支持设备移动性
- TCP/IP协议栈的基本工作原理
- Linux下TCP/IP协议栈的简单脉络分析