每一层的功能都是相互独立,这使得它们可以仅完成自己的任务,比如传输、编码等。
TCP/IP将网络分为4层结构,分别是应用层、传输层、网络层、接口层。
应用层HTTP、SMTP等,是网络应用开发的重点传输层TCP或UDP网络层IP接口层处理物理细节TCP/IP网络分层解释如下:
应用层:为用户的进程提供服务,应用层负责发送及接收什么数据、如何解释数据、如何呈现数据、如何加密数据等问题,是网络应用程序开发者重点打交道的对象。传输层:为两个主机的不同端口之间的通信提供服务。端口是一种在同一个主机内的不同通道之间进行寻址的方式。传输层的发送方与接收方在物理上无须相邻。TCP/IP的传输层包括2中协议:TCP/UDP。TCP提供可靠的有序传输,UDP提供非可靠的传输。网络层:为两个主机之间提供通信服务。网络层定义了数据如何被封装为传送报,并且定义了不同主机之间寻址方式。接口层:负责相邻物理设备之间的信息传输。接口层的工作非常多且复杂,它需要完成接口层的数据组装,加入必要的控制和校验数据,并且将二进制数据流(0/1)转换为物理链上的标准水平。网络设备及部件是连接到网络的物理实体。
网络传输及数据交换作用的设备,具体有:集线器、交换机、网桥、路由器、网关、网络接口卡、无线接入点、调制解调器、光缆等。
集线器:是接口层设备。集线器是网络互连的最简单设备,它接收并识别网络信号,然后再生成信号并将其发送到网络的其他分支上。
交换机:是接口层设备,也是网络互联中最常用的设备。
网桥:是接口层设备。网桥通常用于物理异构的网络之间相互连接,比如以太网和令牌网之间。
路由器:是网络层设备。路由器是互联网的主要结点设备,通过发送者、接收者的IP地址和路由算法决定数据的收发路径。
网关:是一个通用概念,主要指不同网络环境之间协议转换,一般为应用层。
调试解释器:‘俗称:猫’,是接口层设备,用于连接计算机网络与传统通信网。‘猫’将计算机的数字信号转译成能够再常规电话线中传输模拟信号。因为模拟信道的传输距离更长,所以长距离的网络传输一般都需要经过’猫’转换。常见的家用’猫’:56k猫、ADSL猫、光钎猫。
无线接入点:是接口层设备。将有线网络转为无线网络,最常用的无线接入点 WIFI。
防火墙:是传输层及应用层的设备。防火墙通常位于不同网络的边界处,主要防止恶意程序及数据进入内部网路,或者防止机密信息泄露到广域网中。
为统一资源定位符,用来表示Internet上资源位置的标准。资源位置包括资源所在的主机及其在主机内的访问路径。这里所说的资源是指Internet上任何可访问的对象,包括文本、图像、视频流等。URL标准形式如下:
[协议:]//[主机]:[端口]/[路径]?[参数] # 举个栗子: https://51easymaster.com/?only=0[协议]可以是:HTTP、FTP等应用层协议;
[主机]:是域名或IP地址;
[端口]:是传输层端口号;
[路径]:是以斜杠, '/'分割的主机内的路径;
[参数]:是以’&'分割的若干键值对。
这里所说的端口,不是计算机硬件I/O端口,而是软件级概念。就像IP地址是网络层的寻址方式,端口是传输层的寻址方式。端口是一个16位二进制数表达的正整数,数字范围为0~65535。
注意:TCP和UDP可以在同一主机上使用相同的端口而互不干扰。例如TCP有一个66号端口,UDP也可以有一个66号端口,两者并不冲突。
Internet标准应用层协议默认端口使用:
端口号传输层协议应用层协议解释80TCPHTTP互联网应用最广泛一种网络协议21TCPFTPFTP的传输效率非常高,所以在网络上传输打的文件时,一般也采用该协议23TCPTELNET互联网远程登录服务的标准协议和主要方式443TCPHTTPS提供加密和通过安全端口传输的另一种HTTP。对一些安全较高的网站,如银行,证券等69UDPTFTP简单文件传输协议,主要用于轻量级设备启动时从网络下载启动代码22TCPSSHSSH是目前较可靠、专为远程登录会话和其他网络服务提供安全性的协议,利用SSH协议可以有效防止远程管理过程中信息泄露问题25TCPSMTP简单邮件传输协议,它是一组用于从源地址到目的地址传送邮件的规则7001TCPHTTP网络服务器WebLogic的默认端口9080TCPHTTP网络服务器WebSphere的默认端口8080TCPHTTP很多开源网络服务器的默认端口,例如:Tomcat等5432TCPPostgresPostgreSQL数据库的默认连接端口1521TCPOracleOracle数据库的默认连接端口1080UDPQQ腾讯QQ软件的默认通信端口TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠、基于字节流的传输层通信协议。
TCP的特性如下:
有序性:为每个数据包编排序号,使接收端能够判断先后到达的次序混乱的数据包原本顺序。
正确性:TCP用一个checksum函数来检验数据是否有错误,在发送和接收时都要计算校验和,这是的接收端能够判断数据是否在传输过程中被破坏。
可靠性:发送端采用超时重传并有确认机制识别错误或丢失数据,进行重发。
可控性:接收端和发送端的网络质量通常不同,TCP采用滑动窗口协议和拥塞控制算法使用数据的发送速度达到合理值。
TCP采用面向连接的方式收发数据,在收发数据之前需要先建立连接,在数据传输之后释放连接,如图所示: 建立连接的三次握手过程如下:
建立连接时,客户端发送SYN包到服务器,并进入SYN_SENT状态,等待服务器确认。
服务器收到SYN包,反馈给客户端一个SYN+ACK包,此时服务器进入SYN_RECV状态。
客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK,客户端和服务器同时进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
建立连接后双发相互发送消息。
消息完成后可由任意一方发送关闭连接请求,关闭连接的过程如下:
关闭请求方(比如客户端)向另一方发送(比如服务器)一个带有FIN附加标记的报文段。服务器收到这个FIN报文段之后,并不立即用FIN报文段回复主机A,而是先向主机A发送一个确认序号ACK,同时通知自己相应的应用程序:对方要求关闭连接,使应用程序做相应的清理工作。服务器的应用程序清理工作完成后,向客户端发送一个FIN报文段。客户端收到这个FIN报文段后,向服务器发送一个ACK,表示连接彻底释放。UDP(User Datagram Protocol)是一种无连接的传输层协议,提供面向事务的简单的不可靠信息传送服务。
UDP的特性如下:
1.数据可以随时发送、接收、没用建立、断开连接的过程,因此主机不需要维护复杂的连接状态。
2.UDP不保证数据的可靠传输,仅仅尽最大可能进行发送。
3.没有拥塞控制算法控制收发速率,程序需在应用层自行控制。
4.发送方的UDP对应用程序交付的报文,在添加首部后向下交付给IP层。既不拆分,也不合并。因此,应用程序需要选择合适的报文大小。
UDP协议适用应用场景:
吞吐量大(因为只做轻量级控制)、可以承受信息丢失(因为传输不可靠)。在网络状况良好的情况下,UDP的丢包率在实际情况下也非常少,所以仍有很多经典协议采用UDP进行传输,比如SNMP、NFS、DNS、BOOTP等。
