计算机网络协议基础

1、OSI七层模型

  开发系统互连参考模型(Open System Interconnect简称OSI)是国际标准化组织(ISO)和国际电报电话咨委会(CCITT)联合制定的开放系统互连参考模型,为开放是互连信息系统提供了一种功能结构的框架。其目的是为异种计算机连接提供一个共同的基础和标准框架,并为保持相关标准的一致性和兼容性提供共同的参考。这里所说的开放系统,是指上值得是遵循OSI参考模型和相关协议能够实现互连的具有各种应用目的的计算机系统。

  OSI采用了分层的结构化技术,共分七层:物理层、数据联络层、网络层、传输层、会话层、表示层、应用层

2、TCP/IP模型

  OSI模型比较复杂且学术化,所以我们实际使用的TCP/IP模型,共分4层,链路层,网络层,传输层,应用层。两个模型之间的对应关系如图所示:

 

  无论什么模型,每一个抽象层建立在低一层提供的服务上,并且为高一层提供服务。

3、TCP/IP协议族

  Transmission Control Protocol/Internet Protocol的简称,中译名为传输控制协议/因特网互连协议,是Internet的基本协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。协议采用4层的层级结构。然而在很多情况下,它是利用IP进行通信时锁必须用到的协议群的统称。也就是说,它其实是个协议家族,由很多个协议组成,并且是在不同的层,是互联网的基础通信架构。

TCP/IP概念层模型

功能

TCP/IP协议族

 

应用层

文件传输,电子邮件,文件服务,虚拟终端

TFTP,HTTP,SNMP,FTP,SMTPDMS,Telnet

数据格式化,代码转换,数据加密

没有协议

解除或建立与别的接点的联系

没有协议

传输层

提供端对端的接口

TCP,UDP

     网络层

为数据包选择路由

IP,ICMP,RIP,OSPF,BGP,IGMP

 

 

 

链路层

传输有地址的帧以及错误检测功能

SLIP,CSLIP,ARP,RARP,MTU

一二进制数据形式在物理媒体上传输数据

ISO2110,IEEE802,IEEEE802.2

4、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:反向地址转化协议

5、地址和端口号

  我们常说MAC地址和IP地址。MAC地址及以his媒体介入层上使用的地址,也叫物理地址、硬件地址或链路地址,有网络设备制造商生产是写在硬件内部。MAC地址与网络无关,也即无论将带有这个地址的硬件(如网卡。集线器、路由器等)接入到网络的何处,都有相同的MAC地址,他有厂商写在网卡的BIOS里,理论上讲,除非盗来硬件,否则是没有办法毛宁顶替的。

       IP地址后来用来识别TCP/IP网络中互联的额主机和路由器。IP地址基于逻辑,比较灵活,不受硬件限制,也容易记忆。

       在传输层也有这种类似于地址的概念,那就是端口号。端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。

       一台计算机上同时可以运行多个程序。传输层协议正式利用这些端口识别本机正在进行通信的应用程序,并准确的将数据传输。

6、端口号的确定

  标准既定的端口号:这种方法也叫静态方法。她是值每个应用程序都有其指定的端口号。但并不是说可以随便使用任何一个端口号。例如HTTP、FTP、TELNET等广为使用的应用协议中所使用的端口号就是固定的。这些端口号被称为知名端口号,分布在0~1023之间;除了知名端口号外,还有一些端口号被正式之策,它们分布在1024~49151之间,不过这些端口号可用于任何通信用途。

       时序分配法:服务器有必要确定监听端号,但是接受服务的客户端没必要确定端口号。在这种方法下,客户端应用程序完全可以不用自己设置端口号,而全权交给操作系统进行分配。动态分配的端口号范围在49152~65535之间。

7、端口号和协议

  端口号由其使用的传输层协议决定。因此,不同的传输层协议可以使用相同的端口号。

       此外,哪些知名的端口号豫传输层协议并无关系。只要端口一直都将分配同一种应用程序进行处理。

posted @ 2019-12-26 10:04  mark-xiang  阅读(183)  评论(0编辑  收藏