
数据通信与网络
文章平均质量分 83
InAHurryv
或取诸怀抱悟言一室之内
展开
-
2021年3月16日上午 关于数据包从网卡到应用程序简述
数据包从网络中到达网卡时候,会直接将数据通过DMA写入socket buffer(内核)中,这时候 网卡会给cpu发送一个中断告诉cpu来数据包这个事件,中断服务程序 即网卡的驱动程序执行 ,处理消费内核中的数据。(网卡收到数据包,DMA到内核内存,中断通知内核数据有了,内核按轮次处理消耗数据包,一轮处理完成后,开启硬中断(开硬中断的作用是可以接受后序的硬件中断请求)。...原创 2021-03-16 11:30:21 · 491 阅读 · 0 评论 -
阅读 网络层 所想到的
网络层向上只提供简单灵活的、无连接的、尽力交付的服务。这里 我对自己提出以下几个问题1、互联网上的不同网络的主机 通信具体是什么样的?假设 LAN1 有主机A ,ip地址为IPA,物理地址PA 该网络的路由器R1 的硬件地址为 PR1,PR2,LAN2有主机B,ip为IPB,那么A与B通信的过程是:A首先会通过ARP获取路由器R1的接口硬件地址PR1,然后构造mac帧发送给R1,R1查询路由表得知该分组需要从PR2出然后通过ARP获取H2的硬件地址,然后构造mac帧发送给H2。通过以上过程得知ARP可原创 2021-02-25 22:02:40 · 86 阅读 · 0 评论 -
TCP粘包 拆包 及其解决办法
1、udp 会发生粘包吗?由于tcp 是面向连接的,客户端连接服务端必须二者都有自己的套接字,而udp不是面向连接的,接收端缓冲区利用链式结构来记录每一次到达的udp包,所以不会发生粘包问题。2、tcp 在哪些情况下会发生 粘包问题?发送端数据包过小 一次发送多个分组(Nagle算法)。接收端 应用层未及时处理缓冲区的数据,导致多个包粘粘在一起。3、如何解决tcp粘包问题?通过上面的叙述,我们可以认识到接收到的报文不一定就是整个数据包消息。如何区分是不是一整包消息:在包头说明长度。另外在接收端原创 2020-12-14 13:46:48 · 238 阅读 · 0 评论 -
阅读TCP 连接所作的思考-12-13
1、tcp 为什么要进行3次握手建立连接?tcp 如果进行2次握手建立连接,那么服务端收到客户端的请求后发送确认ACK就等待数据传送了,这样有个问题是 上一次的滞留在网络中的连接请求现在到达后仍然会使得服务端打开连接等待数据接收,然而真实的情况是该连接请求是超时的,客户端并没有真的想在此时进行连接。tcp 如果进行4次握手即 客户端发送SYN 服务端发送ACK,服务端发送SYN 客户端发送ACK服务服务端收到客户端的ack后才可以传输数据。3次握手把服务端的SYN 和ACK合并为1个包了所以可以为3次。原创 2020-12-13 23:36:51 · 116 阅读 · 0 评论 -
有关TCP协议的思考 (可靠传输 流量控制 拥塞控制)
之前写过一篇有关网络层的ip协议设计相关的想法,关于tcp我同样来一篇。其实了解TCP协议就必须要了解其首部的每个字节的意义。TCP是可靠传输,传输数据之前必须建立连接 最后也要释放连接。所以要我们自己设计,应该有哪些字段呢?首先应该是目的端口号、源端口号 用于进程到进程的通信。其次序号和确认号 即对每个字节编号,不管是停止等待ARQ还是连续ARQ都是需要知道哪个字节的数据是否收到,那么就需要编号。确认号是告诉对方下一次该从哪个编号的字节开始发送数据。然后 是ACK FIN SYN 等标志位 用于连接相关。原创 2020-12-10 00:54:58 · 324 阅读 · 0 评论 -
内部网关协议RIP和OSPF之思考
虽然今天要写的内容很久之前看过但是老是忘记,在饭桌上腾讯的本科同学什么ospf 什么最小生成树 头头是道,而我这个菜鸡真是看过就忘。后来我反思这个道理,当我们一开始接触某种新的知识,总是容易陷入细枝末节中,从而忘记在宏观上把控,从而只见树木不见森林。其实我们最好能二者同时进行,将知识理解的到位。下面我来说一说内部网关协议,为什么是内部,内部代表什么,内部其实就是一个自治系统,那么什么是自治系统呢:可以通过网络管理员来决定整个系统内的路由协议使用rip(路由信息协议)或者ospf(开放最短路径优先),比如原创 2020-12-08 00:21:24 · 418 阅读 · 0 评论 -
阅读 数据链路层 所想到的
我们知道数据链路层主要作用是:1、封装成帧 2、透明传输 3、差错控制这里我对自己提几个问题1、既然数据链路层有差错控制,为什么还需要ip层的校验和 传输层的提供可靠传输?答:数据链路层的差错检测只是比特检测,没有纠错功能。并不是可靠传输,可靠传输指的是发送端发送什么,接收端就接收什么。而这过程可能发生帧的丢失、帧的重复、帧的乱序等情况只靠数据链路层无法完成,数据链路层提供比特检测的好处是及时发现已经有错的帧,避免在网络中传输造成资源消耗。2、我们知道数据链路层的常见协议有点对点信道协议ppp和广播原创 2020-12-01 00:04:28 · 147 阅读 · 0 评论 -
Http 我懂了吗
Percent-encoding:是一种对8-bit字符进行编码的机制,也称url编码。编码组成:%+被替换字符的AscII 16进制表示DNS解析:作为应用层协议,为其他应用层协议提供服务。将主机名-》ip。访问顺序本地host文件-》本地DNS解析器缓存-》本地DNS服务器之后分两种情况,如果设置转发那么直接一层层向上转发直到顶级域名服务器。如果未设置转发,那么直接访问根服务器,(比如要查询的www.qq.com)那么就会将根下的顶级域名服务器的ip发送本地域名服务器。本地域名服务器收到后向.co原创 2020-09-03 20:15:00 · 381 阅读 · 0 评论 -
数据通信与网络
数据通信与网络1、数据链路层 有噪通道:goback -NARQ 是 主要通过计时重传来完成工作,俩台设备通信时,每一个帧传送时候有一个计时器,若某个帧的计时器到时 未收到接收方 的ack帧,那么该帧以及该帧以后的帧都会重发。但是该协议只用一个计时器,(所有未接收到相应ack的帧都会有相应的副本)发送方窗口大小为2的m次方-1, (假设帧序列号总共m位),接收方窗口大小原创 2017-11-17 15:51:01 · 2106 阅读 · 0 评论 -
网络层
网络层 1、数据报 这里讲解一下ip头中难懂的部分 分段 最大传输单元MTU 每一个数据链路层协议都有自己的帧格式,这个是中定义的一个字段是数据字段的最大长度。换言之,当数据报分装成帧时,该数据包的总长度必须小于这个最大数据长度。 Ipv4 数据包的最大长度65535字节,如果对于一些MTU小于ipv4 数据包的物理网络,就要对数据包进行分割,就是所谓的分段。 标识:16 位 标识一个原创 2017-06-19 01:18:35 · 688 阅读 · 0 评论 -
数据链路控制
数据链路控制 1、成帧 面向字符协议 重要的是转义符(esc)的应用当数据链路只交换文本时,标记可以选择文本中不使用的字符来作为标记符,但是现在我们传输图片,视频。标记就可能是传输数据的一部分,这是转义字符出现了,数据段被填入一个额外的字节,即转义字符,当接收方收到转义字符时并仍将下义字符当作数据来处理。面向位的协议 帧的数据段是一个位的序列。除了头部我们仍需要一个标记来区分帧与帧。多数协议原创 2017-06-18 18:06:38 · 1525 阅读 · 0 评论 -
数据通信与网络学习
网络模型OSI(open system interconnection)模型 并不是一个协议,而是一个模型。 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 123 网络支持,他们处理从一个设备到另一个设备的数据传输的物理方面的问题 567 用户支持,他们允许不相关的软件系统间的互操作 4 传输层将俩个子功能连接起来并保证下层是以上层能够使用的方式进行传输的。 下面细说每一层的原创 2017-06-17 22:27:56 · 4559 阅读 · 0 评论