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

网络通信过程的一些基础问题

客户端A在和服务器进行TCP/IP通信时,发送和接收数据使用的是同一个端口吗?

这个问题可以这样来思考:在客户端A与服务器B建立连接时,A需要指定一个端口a向服务器发送数据。当服务器接收到A的报文时,从报文头部解析出A的ip地址和使用的端口号a,然后服务器B向A的a端口发送数据;那么自然的,A将从a端口接收数据。

所以在上面的过程中,A发送和接收数据使用的都是同一个端口。

客户端A在和服务器B进行TCP/IP通信时,会出现A同时向B的指定端口发送过多数据导致数据丢失的情况吗?

在TCP协议中,窗口大小(Window Size)是用来控制一方发送数据量的重要参数,可以避免发送方发送大量数据导致接收方处理不过来。双方通过TCP的三次握手过程能协商出一个初始的窗口大小,之后在数据传输过程中,接收方会通过ACK报文将自己当前的窗口大小告知发送方,以便发送方能根据这个窗口值调整数据发送量。
在正常情况下,如果接收方的处理速度跟不上发送方的速度,接收方的TCP窗口大小会减小,甚至变为0。此时发送方会停止向接收方发送数据,以待其处理完手头的数据,这种情况被称为接收方阻塞。只有当接收方再次发送的ACK报文中,窗口大小大于0,发送方才会继续传输数据。所以一般不会出现"因为发送数据太多导致接收方丢包的情况"。

存在A同时向端口a发送和接收数据的情况吗?

在 TCP 中,数据传输是双向的,也就是说,连接的两端(即端口)都可以同时接收和发送数据。
这种模式允许在任何给定时刻,只要连接是打开的,数据都可以在两个方向上流动。这就是为什么一个 TCP 连接可以使用一个单一的端口解决数据发送和接收的原因。

回顾网线水晶头的结构,网线一般都有八根线芯,根据T568B的标准,相对应网线颜色分为1橙白,2橙,3绿白,4蓝,5蓝白,6绿,7棕白,8棕。1橙白和2橙是负责发送数据,3绿白和6绿是负责接收数据的,4578闲置,也就是人们常说的1236通就能上网。在百兆网络中确实是这样的,所以以前人们也常常利用4578来做电话线使用。在千兆网络传输中,8根网线都要使用,1、2、3、6芯发送数据,4、5、7、8芯接收数据。

由水晶头的结构可知,数据的接收和发送是相互分开不干扰的。网卡处理数据的速度是非常快的,百兆网能在一秒内处理数十兆的数据。普通用户使用时基本上不会出现丢包的情况。

存在A同时向端口a发送多个报文的情况吗?他们会相互干扰吗?

A每发送一个报文,他的窗口就会减小,在减小为0之前,他可以发送多个报文。这些报文在通过网线发送时,会一个个排队发送,不会相互干扰。

其他

在现实应用中,使用的是四层网络协议:数据链路层、网络层(IP数据报)、传输层(TCP报文)、应用层(HTTP、FTP、SMTP协议等)。至于五层和七层协议,实际中似乎没有什么用处。

网卡处于数据链路层,并向上层返回IP数据报。

(比较久没有复习计算机网络了,这些以前学过的东西都给忘了,忘的真快)

在这里插入图片描述

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

相关文章:

  • STL——stack容器和queue容器详解
  • django websocket实现聊天室功能
  • 软件测评中心▏性能测试之压力测试、负载测试的区别和联系简析
  • Go 语言 panic 和 recover 详解
  • NAND Separate Command Address (SCA) 接口数据传输解读
  • 彻底认识Unity ui设计中Space - Overlay、Screen Space - Camera和World Space三种模式
  • 档案数字化怎样快速整理资料
  • 面试算法100:三角形中最小路径之和
  • androj studio安装及运行源码
  • 【Web】token机制
  • JVM 11 调优指南:如何进行JVM调优,JVM调优参数
  • 横版动作闯关游戏:幽灵之歌 GHOST SONG 中文版
  • 【C++】:C++中的STL序列式容器vector源码剖析
  • final
  • 【AI】ObjectCenteredSensing
  • 一阶低通滤波器
  • 【排序算法】插入排序与希尔排序,你不想知道为什么希尔比插入更快吗?
  • Unity中向量的点乘、叉乘区别和作用以及经典案例
  • (26)Linux 进程通信之共享内存(共享储存空间)
  • 体感游戏开发体感互动游戏
  • vulnhub靶场之DC-5
  • 为什么选择CRM系统时,在线演示很重要?
  • 专业实习day3、4(路由器做内网访问公网)
  • H264码流进行RTP包封装
  • 基于多智能体点对点转换的分布式模型预测控制
  • 性能分析与调优: Linux 实现 缺页剖析与火焰图
  • 代码随想录算法训练营第17天 | 110.平衡二叉树 + 257. 二叉树的所有路径 + 404.左叶子之和
  • ubuntu20.04网络问题以及解决方案
  • Java面试题(java高级面试题)
  • 【MIdjourney】关于图像中人物视角的关键词