当前位置: 首页 > news >正文

网络工程师学习笔记——网络互连与互联网(三)

TCP三次握手

建立TCP连接是通过三次握手实现的,采用三报文握手主要是为了防止已失效的连接请求报文突然又传送到了,因而产生错误

主动发起TCP连接建立的称为客户端

被动等待的为TCP服务器,二者之间需要交换三个TCP报文段

  • 首先是客户端主动发起TCP连接,发送一个TCP报文段,其中的SYN被置为1,一个seq=x序列号,此时客户端进入SYN_SEND状态

  • 然后服务端收到tcp报文,如果同意建立连接,则回复一个tcp报文,其中SYN和ACK标志位都为1,序列号seq=y,确认字段ack=x+1,这是对tcp客户进程所选择的序列号seq的确认,此时服务端进入SYN_RECV

  • 客户端收到服务端tcp的确认报文后,还要向服务端发送一个普通的tcp,用于确认报文段并已进入建立状态,报文中的ACK为1序列号seq=x+1确认号ack=y+1,服务端收到报文后双方都进入 ESTABLISHED状态

注意:

<1>第一个报文不携带数据,因为规定SYN为1的报文不可以携带数据,但是要消耗一个序列号

<2>最后一个报文可以携带数据,不携带数据不消耗序列号,下一个序列号任然为x+1

被动建立的一方是LISTEN状态

TCP四次挥手

在断开连接前,双方都处于ESTABLISHED,双方都可以主动的断开连接

由于TCP连接是全双工的,因此每个方向都需要单独的断开

  • 客户端打算断开连接,想服务端发送一个报文段,其中FIN为1,且发送一个序列号seq=u,之后客户端进入FIN_WAIT_1状态,等待服务端确认

  • 服务端收到断开连接报文后,想客户端发送一个应答报文ACK为1,确认号ack=u+1,序列号seq=y,然后服务端进入CLOSE_WAIT状态,进入等待关闭状态,处于半关闭状态(可以接数据或者发送数据,表明还有一种可以再正常工作)

  • 服务器也打算断开连接,会向客户端发送断开连接报文,其中FIN为1,ACK为1,序列号seq=x,确认号ack=u+1,此时服务器进入LAST_ACK 状态

  • 客户端收到来自服务端的断开连接报文后,向服务端发送ACK应答报文段以及断开连接报文段的确认号ack=x+1,之后客户端进入TIME_WAIT 状态,服务器收到ACK应答报文后,服务器进入CLOSE状态,此时客户端还处于TIME_WAIT状态,此时的tcp连接还未释放,等待2ms后,客户端才进入CLOSE状态

二者之间的存在,保证了数据的可靠传输

拥塞控制和流量控制

拥塞控制(在AB节点之间的所有网络节点之间进行控制)

TCP滑动窗口机制

win=3代表某一方可以发送的数据

窗口大小决定了在收到确认前可以发送的数据量

流量控制(在A、B两个节点之间进行控制)

流量控制:是为了防止发送速度过快,接收方处理不过来,造成丢包现象,导致网络资源浪费

UDP(用户数据报协议)

特点:

  • 不可靠传输

  • 面向无连接

  • 尽力而为的传输

应用:DNS,视频应用

相比于TCP,UDP的报文开销减少很多,只是有简单的端口寻址功能

端口号:应用程序之间进行通信时的

源端口:随机分配的,一般 >1024 目的端口:具体到常用的端口号(如telnet 23 、DNS 53等)

常见的端口及协议分布层

  • 物理层和数据链路层

    • 802.3 以太网

    • 802 局域网

    • 802.11 WIFI

  • 网络层

    • ICMP 控制报文协议 端口号:1

    • IGMP Internet组管理协议 2

    • ESP 安全封装协议 50

    • AH 认证头协议 51

    • EIGRP 增强IGRP路由协议 88

    • OSPF 开放式最短路径优先 89

    • ISIS 中间系统到中间系统 124

    • VRRP 虚拟路由冗余协议

  • 传输层(TCP,UDP)

  • 应用层(分为TCP层面,UDP层面)

TCP层面的协议(常用的)

UDP层面的协议(常用的)
邮件三剑客:
  • SMTP 25

  • POP3 110

  • IMAP 143

汇总:

http://www.lryc.cn/news/446568.html

相关文章:

  • 【Tomcat】常见面试题整理 共34题
  • 到时间没回家又不接电话?如何迅速确定孩子的位置?
  • 接口自动化--commons内容详解-02
  • WanFangAi论文写作研究生论文写作神器在线生成真实数据,标注参考文献位置,表格公式代码流程图查重20以内,研究生论文写作技巧
  • cv2.waitkey(30) 按键盘无效
  • 【洛谷】P10417 [蓝桥杯 2023 国 A] 第 K 小的和 的题解
  • Ubuntu24.04 安装ssh开启22端口及允许root用户远程登录
  • STM32基础学习笔记-DHT11单总线协议面试基础题7
  • Redisson分布式锁的概念和使用
  • uniapp小程序持续获取用户位置信息,后台位置获取
  • 优化算法(五)—梯度下降算法(附MATLAB程序)
  • TypeScript 设计模式之【单例模式】
  • UDP与TCP那个传输更快
  • 如何把PDF样本册转换为网址链接
  • centos7 semanage 离线安装 SELinux
  • 磨具生产制造9人共用一台工作站
  • Qt clicked()、clicked(bool)、toggled(bool)信号的区别和联系
  • nginx实现负载均衡的分发策略
  • 【Python】用代码片段掌握Python核心功能
  • JVM 内存模型
  • Linux2.6* 内核默认支持的文件系统
  • PMP--二模--解题--111-120
  • idea 创建多模块项目
  • redis Redis-Cluster常用命令与Redis性能监控
  • 《C++中的随机数生成器:探索随机之美》
  • 为什么推荐使用英文版LabVIEW
  • 【Moveit2】move_group_interface_tutorial中文注释
  • JavaScript window的open和close用法
  • 经典sql题(十四)炸裂函数的恢复
  • 【vue2】组件写法