网络协议

网络协议

网络协议是为了能让计算机在网络中进行数据交换而人为建立的规则、标准。
互联网上有上百种协议,但是最重要的两个协议是TCP协议和IP协议,因此我们将上百种协议统称为TCP/IP 协议族。

根据协议的功能的不同抽象成了4层。

  • 应用层:TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet 等等
  • 传输层:TCP,UDP
  • 网络层:IP,ICMP,OSPF,EIGRP,IGMP
  • 数据链路层:SLIP,CSLIP,PPP,MTU
    在这里插入图片描述

传输的时候先将数据从应用层传递到传输层,然后再从传输层传递到网络层,然后再传递到链路层,最后在通过物理传输介质(网线)传递数据。
这个过程发送方在组包,数据一层层变大,接收方在解包一层层变小。
就是我们电脑上的数据想要发送到你的电脑上需要通过一层一层的传递到物理层,然后再由物理层传输到你的电脑,在传输过程中为了保证数据不丢失,需要在我的电脑的每一层添加一些额外的内容。
在这里插入图片描述
应用层指的是QQ通信需要有自己的协议,迅雷下载下载东西有自己的协议,例如浏览器访问互联网使用的是HTTP协议。

现在通过QQ发送一个‘hello’走的过程是:

  • 在应用层加上自己的协议 例如 xx hello。
  • 传递到了传输层,添加了源端口和目的端口。
  • 走到了网络层,会在前面添加上 源ip地址和目的ip。
  • 走到链路层,添加源mac 地址和目的mac地址。
  • 然后通过网线传输到对方的电脑上,先判断是不是我的mac地址,如果是就减去mac,在往上到网络层,判断是不是我的ip地址,如果是就减去,依次往上走,直到qq。中间如果有一层不对就把数据扔掉。对方就不能获取发送过来的信息。

在计算机中存在应用层,传输层,网络层,链路层,物理层
其中用户操作程序运行都在应用层,而数据从一个计算机传递到另一个计算机是通过物理层的网线,数据从应用层传递到物理层,才传递到其他人的物理层,再从其他人的物理层传递到应用层,传输 网络 链路 分别用来对要传输的数据进行加密包装或者解密解包的来保证数据在传输过程中的安全与准确送达
他们加密包装和解密解包的方式就叫做协议,每层的协议只应用在自己的层

TCP协议

TCP(Transmission Control Protocol)可靠的、面向连接的协议(面向连接就是发送消息之前先建立连接然后再发送消息例如打电话场景,在网络中具体指的是三次握手)

TCP协议特点

数据安全,速度略低。分为客户端和服务端。
使用TCP的应用:Web浏览器;电子邮件等程序。

TCP三次握手

三次握手就是客户端和服务器进行通信发送数据的时候首先会有三次交流来建立连接。建立完连接之后才可以进行传输数据

三次握手的过程

  • 第一次握手:客户端让服务器准备好资源,问服务端你准备好了吗
  • 第二次握手:服务端资源准备好了,并问客户端你准备好接受了吗
  • 第三次握手:客户端也准备好了说我准备好了。接下来才真正的发生数据。

真正进行3次握手的时候发送的是值。
第一次客户发送一个值例如是11,发送给了服务端,服务端如果准备好了就将11+1变成12再发送给客户端,表示准备好了资源。
服务器再给客户端发送一次数据例如33代表询问准备好接受了么,客户端如果准备好了就再将数据33+1变成34发送给服务端,服务端接受到后就表明客户端准备好了。这样4次才知道双方准备好了资源。
在这里插入图片描述
为了减少时间,因此能减少的次数尽量减少,最终将12和33 的数据变成了一次请求。发送12表示给客户端回答的值,33表示我向客户端发送的值。
这个12和33客户端怎么区分是请求的还是应答的呢?我们可以给数据添加一个标记syn33来标记请求,ack12标记应答
在这里插入图片描述

四次挥手

传输数据前要建立一个连接需要三次握手,才可以传输数据,而传输完数据,要终止一个连接要经过四次挥手。

四次挥手的过程

  • 首先某个应用进程首先调用close,称该端执行“主动关闭”(active close)。该端的TCP于是发送一个FIN分节,表示数据发送完毕。
  • 接收到这个FIN的对端执行 “被动关闭”(passive close),这个FIN由TCP确认。
    注意:FIN的接收也作为一个文件结束符(end-of-file)传递给接收端应用进程,放在已排队等候该应用进程接收的任何其他数据之后,因为FIN的接收意味着接收端应用进程在相应连接上再无额外数据可接收。
  • 一段时间后,接收到这个文件结束符的应用进程将调用close关闭它的套接字。这导致它的TCP也发送一个FIN。
  • 接收这个最终FIN的原发送端TCP(即执行主动关闭的那一端)确认这个FIN。

在这里插入图片描述

TCP协议数据传输的过程

三次握手
TCP是因特网中的传输层协议,使用三次握手协议建立连接。当主动方发出SYN连接请求后,等待对方回答SYN+ACK,并最终对对方的 SYN 执行 ACK 确认(这种建立连接的方法可以防止产生错误的连接)
客户端发送SYN(SEQ=x)报文给服务器端,进入SYN_SEND状态
服务器端收到SYN报文,回应一个SYN(SEQ=y)ACK(ACK=x+1)报文,进入SYN_RECV状态
客户端收到服务器端的SYN报文,回应一个ACK(ACK=y+1)报文,进入Established状态
三次握手完成,TCP客户端和服务器端成功地建立连接,可以开始传输数据了。
数据传输
每传递一次消息,服务端都会告诉客户端说收到消息了。这样确保数据不会丢失。因此我们说TCP是可靠地面向连接(连接一直连着)的传输协议
四次挥手
数据传输完成之后
第一次客户端告诉服务端我不会给你发数据了
第二次服务端回复客户端我收到你发送的信息了
第三次服务端给客户端发生数据说我也不给你发了
第四次客户端给服务端回复说我知道了
在这里插入图片描述

UDP协议

面向无连接,数据不安全,速度快。不区分客户端与服务端。

应用场景

用于网络电话,在线视频网络会议等等,要求实时性比较高(数据传输快)不能有延迟。

应用过程

当应用程序希望通过UDP与一个应用程序通信时,传输数据之前源端和终端不建立连接。
它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。

因此UDP是不可靠无连接的协议。因为有可能数据会丢失。

TCP和UDP的对比

TCP:提供的是面向连接、可靠的服务。
当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。
TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。

UDP:是一个简单的不可靠的运输层协议。
它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。

由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制故而传输速度很快。Tcp就相当于反复确认,然后建立连接传输数据。udp是得到数据,发送,所以udp传输快不稳定不安全。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值