TCP/IP协议族

news/2024/5/18 12:07:31 标签: tcp/ip, 网络, udp, tcpdump, 网络协议

TCP/IP协议族

一系列协议组成的一个网络分层模型

分层

分层原因

网络的不稳定性

具体分层

应用层

决定了向用户提供应用服务时通信的活动,如HTTP、FTP(文件传输协议)、DNS(域名系统)

传输层

对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。在传输层有两个性质不同的协议:TCP和UDP

TCP和UDP区别

  1. 连接
    TCP是面向连接的,传输数据前要先建立连接
    UDP是不需要连接,即刻传输数据。

  2. 连接个数
    TCP是一对一的两点服务
    UDP支持一对一、一对多、多对多的交互通信

  3. 可靠性
    TCP是可靠交付数据,数据可以无差错、不丢失
    UDP不可靠传输,尽量最大努力交付

  4. 拥塞控制、流量控制
    TCP有拥塞控制、流量控制机制,保证数据传输的安全性。
    UDP则没有,即使网络非常拥堵了,也不会影响UDP的发送速率

  5. 首部开销
    TCP首部长度最小20个字节,最大60个字节
    UDP首部只有8个字节,并且是固定不变的

  6. 传输方式
    TCP面向字节流
    UDP面向报文

  7. 使用场景
    TCP适用于要求可靠传输的应用,例如文件传输
    UDP适用于实时应用(IP电话、视频会议、直播)

拥塞控制防止数据过多注入到网络中导致网络资源(路由器、交换机等)过载。
TCP拥塞控制默认认为网络丢包是由于网络拥塞导致的,所以一般的TCP拥塞控制算法以丢包为网络进入拥塞状态的信号。对于丢包有两种判定方式,一种是超时重传RTO[Retransmission Timeout]超时,另一个是收到三个重复确认ACK。

流量控制是接收方通过TCP头窗口字段告知发送方本方可接收的最大数据量,用以解决发送速率过快导致接收方不能接收的问题。所以流量控制是点对点控制

网络

用来处理在网络上流动的数据包。
数据包是网络传输的最小数据单位。
该层规定了通过怎样的路径(所谓的传输路线)到达对方计算机,并把数据包传给对方

TCP和UDP是并行的,为了对他们有一个共同的支持,所以分出网络

链路层

用来处理连接网络的硬件部分

TCP连接

什么叫做连接

通信双方建立确认「可以通信」,不会将对方的消息丢弃,即为建立连接

TCP连接的建立与关闭

建立连接
  1. 客户端:「我要向你发送消息」
  2. 服务器:「好的。我要向你发送消息」
  3. 客户端:「好的

发送端首先发送一个带SYN标志的数据包给对方
接收端接收到后回传一个带有SYN/ACK标志的数据包以示传达确认信息
最后发送端再回传一个带ACK标志的数据包

关闭连接
  1. 客户端:「我不再给你发送消息」
  2. 服务端:「好的」
  3. 服务端:「我不再给你发送消息」
  4. 客户端:「好的」

为什么 TCP 连接在断开时是四次挥手而不是三次?

因为在客户端停止向服务器发送消息时,也许服务器还有消息需要向客户端发送,在稍后服务器的消息发送完毕之后,才需要向客户端发送通知。

长连接

为什么需要长连接

因为移动网络并不在Internet中,而是在运营商的内网,因此并不具备真正的公网IP,因此当某个TCP连接在一段时间不通信之后,网关会处于网络性能考虑而关闭这条TCP连接和公网的连接通道,导致这个TCP端口不再能收到外部通信消息,即TCP连接被动关闭

长连接的实现方式

心跳。即在一定间隔时间内,使用TCP连接发送超短无意义消息来让网关不能将自己定义为「空闲连接」,从而防止网关将自己关闭


http://www.niftyadmin.cn/n/321220.html

相关文章

【2023华为OD笔试必会25题--C语言版】《24 货币单位换算》——字符串

本专栏收录了华为OD 2022 Q4和2023Q1笔试题目,100分类别中的出现频率最高(至少出现100次)的25道,每篇文章包括原始题目 和 我亲自编写并在Visual Studio中运行成功的C语言代码。 仅供参考、启发使用,切不可照搬、照抄,查重倒是可以过,但后面的技术面试还是会暴露的。✨✨…

数据结构--线段树

写在前面: 学习之前需要知道以下内容: 1. 递归 2. 二叉树 文章目录 线段树介绍用途建树修改单点修改区间修改 查询 代码实现。建树更新lazy传递查询 练习洛谷 P3372 【模板】线段树 1题目描述题解 线段树 介绍 线段树是一种二叉树,也可以…

css的clip-path学习

文章目录 clip-path的几个值polygon多边形circle圆形ellipse椭圆形inset 矩形round后面是四个角的度数 一个简单的应用,比如画一段曲线 参考博文 clip-path的几个值 自己学习后,先把clip-path理解为在原图上绘制轮廓,显示的内容是轮廓内的内…

柯里化详解

柯里化详解 介绍玩具版柯里化真正的柯里化(面试必备) 介绍 柯里化(Currying)是一种函数式编程技术,它将一个接受多个参数的函数转换为一系列接受单一参数的函数。柯里化的主要目的是让函数更易于复用和组合。通过柯里…

基于企业网的信息安全防护系统的设计与实现_kaic

摘 要 这篇文章提供了一种新的,基于“禁止一切”安全策略和VxD技术的企业网络安全保障方案,旨在帮助企业更好地应对外界的威胁。通过设计一套完善的企业网信息安全防护系统,不仅可以有效地解决企业网络中存在的问题,而且还可以有…

Testing and fault tolerence考试要点

文章目录 ATPGFault modelScanFunctional testMemory BISTLogic BISTboundary scanATEIddq testingFault tolerant designRisk analysis ATPG ATPG工作流程fault collapsing的原则 Fault model 有哪些fault model以及他们的工作原理 Scan Scan寄存器结构Scan Chain的连接方…

Cypher的使用说明

一、简介 1.1 常用的命令和函数 Cypher查询语言也叫做CQL。 常用的命令如下: CQL命令作用用法CREATE创建创建节点,关系和属性MATCH匹配检索有关节点,关系和属性数据RETURN返回返回查询结果WHERE哪里提供条件过滤检索数据DELETE删除删除节…

基于微信小程序校内论坛系统

开发工具:IDEA、微信小程序 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 前端技术:vue、uniapp 服务端技术:springbootmybatis-plus 本系统分微信小程序和管理后台两部分&am…