开发系统互连参考模型(Open System Interconnect简称OSI)是国际标准化组织(ISO)和国际电报电话咨委会(CCITT)联合制定的开放系统互连参考模型,为开放是互连信息系统提供了一种功能结构的框架。其目的是为异种计算机链接提供一个共同的基础和标准框架,并为保持相关标准的一致性和兼容性提供共同的参考。这里所说的开放系统,是指上值得是遵循OSI参考模型和相关协议可以实现互连的具备各类应用目的的计算机系统。程序员
OSI采用了分层的结构化技术,共分七层:物理层、数据联络层、网络层、传输层、会话层、表示层、应用层服务器
OSI模型比较复杂且学术化,因此咱们实际使用的TCP/IP模型,共分4层,链路层,网络层,传输层,应用层。两个模型之间的对应关系如图所示:网络
不管什么模型,每个抽象层创建在低一层提供的服务上,而且为高一层提供服务。架构
三、TCP/IP协议族框架
Transmission Control Protocol/Internet Protocol的简称,中译名为传输控制协议/因特网互连协议,是Internet的基本协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。协议采用4层的层级结构。然而在不少状况下,它是利用IP进行通讯时锁必须用到的协议群的统称。也就是说,它实际上是个协议家族,由不少个协议组成,而且是在不一样的层,是互联网的基础通讯架构。tcp
TCP/IP概念层模型编码 |
功能加密 |
TCP/IP协议族spa |
应用层操作系统 |
文件传输,电子邮件,文件服务,虚拟终端 |
TFTP,HTTP,SNMP,FTP,SMTPDMS,Telnet |
数据格式化,代码转换,数据加密 |
没有协议 |
|
解除或创建与别的接点的联系 |
没有协议 |
|
传输层 |
提供端对端的接口 |
TCP,UDP |
网络层 |
为数据包选择路由 |
IP,ICMP,RIP,OSPF,BGP,IGMP
|
链路层 |
传输有地址的帧以及错误检测功能 |
SLIP,CSLIP,ARP,RARP,MTU |
一二进制数据形式在物理媒体上传输数据 |
ISO2110,IEEE802,IEEEE802.2 |
四、TCP和UDP
在上述表格中,网络协议IP是TCP/IP中很是重要的协议。负责对数据加上IP地址(有发送它的主机地址(原地址)和接受它的主机的地址(目的地址))和其余的数据以肯定传输的目标。
而TCP和UDP都是传输层的协议,传输层主要为两台主机上的应用成序提供端到端的通讯。
可是TCP和UDP最不一样的地方是,TCP提供了一种能可靠的数据传输服务,TCP 是面向链接的,也就是说,利用TCP通讯的两台主机首先要经理一个创建链接的过程,等到链接创建后才开始传输数据,并且传输过程当中采用“带重传的确定确认”技术来实现传输的可靠性。TCP还采用一种称为“滑动窗口”的方式进行流量控制,发送完成后还会关闭链接。因此TCP要比UDP可靠的多。
UDP(User Datagram Protocol的简称,中文名师用户数据报协议)是把数据直接发出去,而无论对方是否是在接受,也无论对方是否接受的了,也不须要接收方确认,属于不可靠的传输,可能会出现对包现象,实际应用中要求程序员编码验证。
注意:咱们常见的网络应用基本上都是基于TCP和UDP的,这两个协议又会使用网络协议的IP协议。可是咱们彻底能够绕过TCP和UDP,直接使用IP,好比LINUX中LVS,甚至直接访问链路层,好比tcpdump程序就是直接和链路层进行通讯。
上图中,其余一些协议的名词解释,
ICMP:控制报文协议
IGMPA:internet组管理协议
ARP:地址解析协议
RARP:反向地址转化协议
五、地址和端口号
咱们常说MAC地址和IP地址。MAC地址及以his媒体介入层上使用的地址,也叫物理地址、硬件地址或链路地址,有网络设备制造商生产是写在硬件内部。MAC地址与网络无关,也即不管将带有这个地址的硬件(如网卡。集线器、路由器等)接入到网络的何处,都有相同的MAC地址,他有厂商写在网卡的BIOS里,理论上讲,除非盗来硬件,不然是没有办法毛宁顶替的。
IP地址后来用来识别TCP/IP网络中互联的额主机和路由器。IP地址基于逻辑,比较灵活,不受硬件限制,也容易记忆。
在传输层也有这种相似于地址的概念,那就是端口号。端口号用来识别同一台计算机中进行通讯的不一样应用程序。所以,它也被称为程序地址。
一台计算机上同时能够运行多个程序。传输层协议正式利用这些端口识别本机正在进行通讯的应用程序,并准确的将数据传输。
标准既定的端口号:这种方法也叫静态方法。她是值每一个应用程序都有其指定的端口号。但并非说能够随便使用任何一个端口号。例如HTTP、FTP、TELNET等广为使用的应用协议中所使用的端口号就是固定的。这些端口号被称为知名端口号,分布在0~1023之间;除了知名端口号外,还有一些端口号被正式之策,它们分布在1024~49151之间,不过这些端口号可用于任何通讯用途。
时序分配法:服务器有必要肯定监听端号,可是接受服务的客户端不必肯定端口号。在这种方法下,客户端应用程序彻底能够不用本身设置端口号,而全权交给操做系统进行分配。动态分配的端口号范围在49152~65535之间。
端口号由其使用的传输层协议决定。所以,不一样的传输层协议可使用相同的端口号。
此外,哪些知名的端口号豫传输层协议并没有关系。只要端口一直都将分配同一种应用程序进行处理。