计算机网络的几个概念

OSI七层参考模型
层数名称基本功能对应设备
第1层物理层负责链路上比特流传输中继器,集线器
第2层数据链路层负责网络内部帧的传输网桥,交换机
第3层网络层负责网间两点间可达性路由器
第4层传输层保证端到端的传输软件实现,无特殊设备
第5层会话层会话的控制软件实现,无特殊设备
第6层表示层数据的表达及数据格式的转换软件实现,无特殊设备
第7层应用层为用户具体应用服务软件实现,无特殊设备
TCP / IP参考模型

  TCP / IP参考模型也称为TCP / IP协议栈,与OSI参考模型不同,TCP / IP参考模型是一种工业标准,并非国际标准。TCP / IP参考模型共包含四层结构,分别是接入层(物理层,数据链路层),网络层,传输层,应用层。它们与OSI七层参考模型有着对应关系,如下表

TCP/IP参考模型OSI参考模型
接入层物理层,数据链路层
网络层网络层
传输层传输层
应用层会话层 ,表示层,应用层
TCP/IP参考模型中每层的主要协议
TCP/IP参考模型主要协议
接入层没有定义协议,之所以不定义协议,是为了增强TCP/IP协议栈的可扩展性,这样TCP/IP协议栈可以基于现有的任何承载方法
网络层IP协议:负责网间的路由 。
ARP协议:负责网络层与数据链路层间的地址转换。
ICMP协议:负责因特网控制管理
传输层TCP协议:面向连接的网络传输协议 。
UDP协议:无连接协议,只做数据包发送
应用层Telnet协议:远程登录协议,基于TCP协议,端口号为23
FTP协议:文件传输协议,基于TCP协议,控制端口号为21,数据端口号为20
HTTP协议:超文本传输协议,基于TCP协议,端口号为80
SMTP协议:简单邮件传输协议,基于TCP协议,端口号为24
SNMP协议:简单网络管理协议,基于UDP协议,端口号为161
IP协议与IP地址

  IP协议是负责网络之间路由的协议,属于网络层中的基本协议,在网络层中数据传输的基本单位是包(Packet),它是在原有的数据帧上封装一个20字节IP头后组成的,在这个IP头包含着源主机的IP地址和目标主机的IP地址。

五类IP地址
地址类型引导位地址范围可用网络地址数可用主机地址数
A类01.0.0.0 ~ 126.255.255.2551262 ^ 24 - 2
B类10128.0.0.0 ~ 191.255.255.2552 ^142 ^ 16 - 2
C类110192.0.0.0 ~ 223. 255.255.2552 ^ 212 ^ 8 - 2
D类1110224.0.0.0 ~239.255.255.255一般用于组播
E类1111240.0.0.0 ~ 255.255.255.255一般用于研究实验
无分类IP地址

  与有分类地址相对的还有一种无分类IP地址,无分类IP地址不固定网络地址部分和主机地址部分的长度,而是由掩码划分主机部分和网络部分。

子网和超网

  所谓子网就是将有分类地址网络和主机的划分向右移动,以产生更多的网络,使得每个网络中的主机更少,这样可以减少网络中主机的冗余。所谓超网就是将有分类地址网络和主机的划分向左移动,减少网络的数量,使得每个网络中的主机增多,这样可以减轻骨干网络的压力,这些都可以通过掩码来实现

重要的网络协议
  1. ARP协议
      ARP协议是Adress Resolution Potocol (地址解析协议)的缩写。它的功能是将目的IP地址转换为目的MAC地址。

  2. ICMP协议
      ICMP协议是Internet Control Manage Protocol(因特网控制管理协议)的缩写。它是TCP/IP协议族的一个子协议,用于在主机-路由器之间传递控制消息,包括报告错误、交换受限控制和状态信息等。平时使用最多的是基于ICMP协议的Ping命令,它是用来检测网络是否连通的一个命令,可以帮助用户分析和判断网络故障。

  3. TCP/UDP协议
      TCP协议是面向连接的网络传输协议。使用TCP协议传输数据时需要先通过三次握手建立数据连接;在传输过程中,一旦出现错误需要重传数据;数据传输完毕需要断开数据连接。因此TCP协议保证了数据包传输的不丢、不错、不乱序、是一种可靠的传输协议。
      UDP协议是一个无连接的网络传输协议。它只提供面向事务的简单不可靠信息传送服务,没有数据的重传机制,当报文发送之后,是无法得知其是否安全完整到达的。因此UDP协议是一种不可靠的数据传输协议。

简述TCP协议三次握手的过程

TCP握手协议

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接.
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
SYN:同步序列编号(Synchronize Sequence Numbers)
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手.
完成三次握手,客户端与服务器开始传送数据

A与B建立TCP连接时:首先A向B发SYN(同步请求),然后B回复SYN+ACK(同步请求应答),最后A回复ACK确认,这样TCP的一次连接(三次握手)的过程就建立了!

所谓三次握手(Three-Way Handshake)即建立TCP连接,就是指建立一个TCP连接时,需要客户端和服务端总共发送3个包以确认连接的建立。在socket编程中,这一过程由客户端执行connect来触发,整个流程如下图所示:
在这里插入图片描述

四次挥手

  所谓四次挥手(Four-Way Wavehand)即终止TCP连接,就是指断开一个TCP连接时,需要客户端和服务端总共发送4个包以确认连接的断开。在socket编程中,这一过程由客户端或服务端任一方执行close来触发,整个流程如下图所示:
在这里插入图片描述
   由于TCP连接是全双工的,因此,每个方向都必须要单独进行关闭,这一原则是当一方完成数据发送任务后,发送一个FIN来终止这一方向的连接,收到一个FIN只是意味着这一方向上没有数据流动了,即不会再收到数据了,但是在这个TCP连接上仍然能够发送数据,直到这一方向也发送了FIN。首先进行关闭的一方将执行主动关闭,而另一方则执行被动关闭,上图描述的即是如此。
(1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
(2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
(3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
(4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手。
   上面是一方主动关闭,另一方被动关闭的情况,实际中还会出现同时发起主动关闭的情况,具体流程如下图:

在这里插入图片描述

为什么建立连接是三次握手,而关闭连接却是四次挥手呢?

  这是因为服务端在LISTEN状态下,收到建立连接请求的SYN报文后,把ACK和SYN放在一个报文里发送给客户端。而关闭连接时,当收到对方的FIN报文时,仅仅表示对方不再发送数据了但是还能接收数据,己方也未必全部数据都发送给对方了,所以己方可以立即close,也可以发送一些数据给对方后,再发送FIN报文给对方来表示同意现在关闭连接,因此,己方ACK和FIN一般都会分开发送。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值