经典的tcp/ip协议开发工程师面试必读--转自:linux网络协议开发工程师 capsicum_ipv6

常见TCP/IP面试题(边学边补充) 1. OSI与TCP/IP各层的结构与功能,都有哪些协议。 (1)OSI:七层模型。 ①物理层:在物理信道上实现原始比特流的传输。(以太网,IEEE 802.2 等) ②数据链路层:实现无差错地将数据帧从一个节点传送到下一个相邻节点。(Wi-Fi(IEEE 802.11) , WiMAX(IEEE 802.16), GPRS, HDLC, PPP 等协议) ③网络层:实现将数据分组从源... 阅读详情
网际协议(Internet Protocol,IP)
      在互联网结构中,用一些路由器互联了多个物理网络。这个结构可能会产生误导,因为关键之处是互联网络提供给用户的接口,而不是网络互联的技术。

      用户可把互联网想象成一个虚拟网络,它把所有主机都互联起来,并可以通过这个虚拟网络进行通信;互联网的底层结构被隐藏起来并且无关紧要。

在rfc791中,是按如下图所示定义了协议层次中的个种协议的位置:
                 +------+ +-----+ +-----+     +-----+  
                 |Telnet| | FTP | | TFTP| ... | ... |  
                 +------+ +-----+ +-----+     +-----+  
                       |   |         |           |    
                      +-----+     +-----+     +-----+  
                      | TCP |     | UDP | ... | ... |  
                      +-----+     +-----+     +-----+  
                         |           |           |    
                      +--------------------------+----+
                      |    Internet Protocol & ICMP   |
                      +--------------------------+----+
                                     |                
                        +---------------------------+  
                        |   Local Network Protocol  |  
                        +---------------------------+  

                         Protocol Relationships
      所以,互联网就是对物理网络的一个抽象。因为,在最底层它提供了相同的功能:接受分组并进行交付。更高层的互联网软件只是丰富了一些用户可以看到的功能。

      这种概念性的划分的最重要的优势是,可以在不干扰其他服务的情况下,替换某个服务,因此,这三层上的研究和开发可以并行开展。

无连接交付系统
最基本的互联网服务由一个分组交付系统组成。该服务具有:
Unreliable(不可靠的)
Connectionless(无连接的)
best-effort delivery(尽最大努力交付的)

网际协议的目的
这种具有不可靠、无连接交付机制的协议称为网际协议(IP)。
IP有三个重要的定义:
1.IP定义了在整个TCP/IP互联网上数据传输所用的基本单元,因此,它规定了互联网上传输的数据的具体格式;
2.IP软件完成选路的功能,选择一个数据发送的路径;
3.除了数据格式和选路的精确而正式定义外,IP还包括了一组体现了不可靠分组交付思路的规则。
这些规则指明了主机和路由器之间
i.应该如何处理分组;
ii.何时及如何发出错误信息;
iii.在什么情况下可以放弃分组。

IP是TCP/IP互联网设计中最基本的部分,因此有时称TCP/IP互联网为基于IP的技术。

IP数据报
帧
      在一个物理网络上,传输的单元是一个包含首部和数据的帧,首部给出了(物理)源地址和目的地址之类的信息。

IP数据报
      互联网则把他的基本传输单元称为Internet数据报(datagram),有时称为数据报。
      数据报被划分为首部和数据区,而且,数据报首部也包含了源地址和目的地址以及一个标识数据报内容的类型字段。
区别:
数据报首部包含的是IP地址,而帧的首部包含的是物理地址。
数据报格式
数据报处理是在软件中进行的,所以它的格式和内容都不受任何硬件的限制。

A summary of the contents of the internet header follows:
                                    
    0                   1                   2                   3  
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Version| IHL   |Type of Service|          Total Length         |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |         Identification        |Flags|      Fragment Offset    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |  Time to Live |    Protocol   |         Header Checksum       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                       Source Address                          |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Destination Address                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Options                    |    Padding    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

VERS(版本)
      数据报的前4比特,包含了创建该数据报的IP协议的版本信息。当前IP协议的版本是4,因此,术语IPV4常用于表示当前协议。

IHL(首部字段)
      4比特,给出了以32比特字长为单位的首部长度。除了IP选项(OPTIONS)以及相应的填充(PADDING)字段以外,首部的所有字段的长度都是固定的。最常见的首部不含选项和填充,长度为20个八位组。

TOTAL  LENGTH(总长度)
有16比特,所以IP数据报的最大长度为216 ,即最大长度为65535八位组。

SERVICE TYPE (服务类型)
8比特的服务类型,在非正式的场合称为TOS(TYPE OF SERVICE),它规定了数据报的处理方式。
0            1            2            3        4        5        6        7
PRECEDENCE    D    T    R    未用

PRECEDENCE优先级,3比特,表示数据报的重要性,0――7
Bits 0-2:  Precedence.
111 - Network Control
          110 - Internetwork Control
          101 - CRITIC/ECP
          100 - Flash Override
          011 - Flash
          010 - Immediate
          001 - Priority
          000 - Routine

D、T、R分别代表本数据报所希望传输的类型:
    D(Delay),低延时需求;
    T(Throughput),高吞吐量需求;
    R(Reliability),高可靠性需求。

      Bit    3:  0 = Normal Delay,      1 = Low Delay.
      Bits   4:  0 = Normal Throughput, 1 = High Throughput.
      Bits   5:  0 = Normal Relibility, 1 = High Relibility.
      Bit  6-7:  Reserved for Future Use.

例如:
Precedence:    5
      Delay:         0
      Throughput:    1
      Reliability:     1

在这个例子中,对于ARPANET是有效的参数,优先级高于半数,并且从高吞吐量和高可靠性被声明的标准信息中选择。
    
互联网不能保证所需求的传输,所以,传输需求是作为路由算法的提示,而不是要求。


区分服务DS(differentiated service)
20世纪90年代后期,IETF重新定义了服务类型字段的含义。
0            1            2            3        4        5        6        7
码点    未用

码点(CODEPOINT),DSCP,码点值映射一个底层服务定义,一般是通过指针数组实现的。

为了维护与初始定义的向后兼容性,该标准把码点的前3比特和后3比特区别对待。

XXX000
当后3个比特包含0时候,优先级比特定义服务的8个主要服务类。

区别服务设计也适应了另一种实际情况:广泛地将优先级6和7用于路由通信量。

无论使用TOS还是DS,都应该认识到,路由软件必须从现有底层物理网络技术中选择一种,并且必须把它与本地策略相联系,这是十分重要的。

因为互联网并不保证提供某种特定服务,沿路径的路由器并不保证同意这种请求,所以,我们把服务类型规范作为路由算法的一个提示,帮助它根据本地策略和对路径上可用的硬件技术的知识,选择不同的路由路径。
数据报的封装(encapsulation)
数据报可以有多长,与帧不同,帧必须由硬件识别的,数据报是由软件处理的,协议的设计者可以任意选择其长度。

实践中,我们知道,数据报要通过底层的物理网络进行传输。为了使互联网传输更为有效,我们更愿意保证每个数据报在独立的物理帧中传输,如有可能,我们要把网络分组的抽象直接映射到一个实际的分组。

在一个网络帧中携带一个数据报的传输方式称为封装(encapsulation).

硬件并不识别数据报的格式,也不理解IP目的地址,因此,当一台机器把一个IP数据报发送到另一台机器时,整个数据报时通过网络帧的数据部分传输。即,物理网络把包括首部在内的整个数据报都看作数据。
最大传输单元(maximum transfer unit, MTU)
IP的设计者应该选择一个最大的数据报长度,使它总能够完整的放到一个帧里。
MTU可能很小,根据不同的硬件:
每种分组交换技术都对一个物理帧可传输的数据量规定了一个固定的上界。

我们不是设计数据报的大小是他与物理网络的限制相近,因为我们设计的主旨是隐藏底层网络技术和方便用户通信。所以:
TCP/IP软件选择了一个方便的初始数据报大小;
同时提供一种机制,在MTU较小的网络上,把长数据报划分成更小的部分。
数据报划分得到的这种小块称为数据报片(fragment),这个划分过程称为分片(fragmentation)。

分片(fragmentation)通常发生在路由器上。
因为IP以8倍数的八位组表示数据的偏移量,所以片的大小必须是8的倍数。
在目的站处理之前必须对收到的数据报片进行重组(reassemble)。
每个数据报片都包含一个数据报首部,它基本上复制了原始数据报的首部,并且保持数据报片的总长度小于传输它的底层网络的MTU长度。

数据报片的重组(REASSEMBLE)
TCP/IP网络要求,数据报片在到达主机后才对他们进行重组。
它允许每片独立的路由,而不需要中间路由器存储或重组。

分片(FRAGMENTATION)控制
数据报的首部的标识(IDENTIFICATION)、标志(FLAGS)、片偏移量(FRAGMENT OFFSET)三个字段用来控制数据报的分片(fragmentation)和重组(reassemble)。

标识(IDENTIFICATION)

目的主机通过数据报片的标识字段及源站地址用来识别数据报。

IP软件使用一种方法在主存中保持一个全局计数器,每产生一个新数据报,计数器加1,并将该值分配给数据报的标识字段。

标志(FLAGS)

标志字段的低端比特指明本片中的数据是否为原始数据的最后一片。称为片未完比特。
三个比特。    
      Bit 0: reserved, must be zero
      Bit 1: (DF) 0 = May Fragment, 1 = Don't Fragment.
      Bit 2: (MF) 0 = Last Fragment, 1 = More Fragments.

         0  1  2
        +---+---+---+
        |   | D | M |
        | 0  | F | F |
        +---+---+---+

片偏移量(FRAGMENT OFFSET)
数据报片的片偏移量字段指明分片所携带数据在原始数据报种的偏移量,以8个八位组为单位,第一片的偏移量必须为0.

TTL(Time to Live)生存时间
设置该数据报在互联网系统中允许存在的时间,单位为:秒。

只要一个寿命字段为“0”,路由器就丢弃该数据报。

实例
Example 1

This is an example of the minimal data carrying internet datagram:
                                    
    0                   1                   2                   3  
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Ver= 4 |IHL= 5 |Type of Service|        Total Length = 21      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Identification = 111     |Flg=0|   Fragment Offset = 0   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Time = 123  |  Protocol = 1 |        header checksum        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         source address                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      destination address                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     data      |                                                
   +-+-+-+-+-+-+-+-+                                                

                       Example Internet Datagram

这个IP数据报的协议版本是IP4,首部包括20个字节,数据报总长21个字节,数据报的数据区是一个字节。数据报可以是一个完整的数据报,不需要分片。

Example 2

在这个例子中,数据报大小为452字节,MTU为280字节,我们要分成两片。
                                    
    0                   1                   2                   3  
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Ver= 4 |IHL= 5 |Type of Service|       Total Length = 472      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Identification = 111      |Flg=0|     Fragment Offset = 0 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Time = 123  | Protocol = 6  |        header checksum        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         source address                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      destination address                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             data                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             data                              |
   /                                                               /
   /                                                               /
   |                             data                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |             data              |                                
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                                
                      
Example Internet Datagram

Notation:
        FO    -  Fragment Offset
        IHL   -  Internet Header Length
        DF    -  Don't Fragment flag
        MF    -  More Fragments flag
        TL    -  Total Length
        OFO   -  Old Fragment Offset
        OIHL  -  Old Internet Header Length
        OMF   -  Old More Fragments flag
        OTL   -  Old Total Length
        NFB   -  Number of Fragment Blocks
        MTU   -  Maximum Transmission Unit



Procedure:
因为MTU为280,IHL以4个八位组为单位,偏移量以8个八位组为单位
IF TL =< MTU
THEN Submit this datagram to the next step in datagram processing
ELSE IF DF = 1
THEN discard the datagram
ELSE To produce the first fragment:

//复制原始数据报头
        (1)  Copy the original internet header;
        (2)  OIHL <- IHL; OTL <- TL; OFO <- FO; OMF <- MF;
//IHL以4个八位组为单位,偏移量以8个八位组为单位
(3)    NFB <- (MTU-IHL*4)/8;
//(280-5*4)/8=32.5,NFB=32
所以数据区为32×8=256字节,TL=256+20=276
        (4)  Attach the first NFB*8 data octets;
        (5)  Correct the header:
             MF <- 1; TL <- (IHL*4) + (NFB*8);
             Recompute Checksum;
        (6)  Submit this fragment to the next step in datagram processing;        
    0                   1                   2                   3  
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Ver= 4 |IHL= 5 |Type of Service|       Total Length = 276      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Identification = 111      |Flg=1|     Fragment Offset = 0 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Time = 119  | Protocol = 6  |        Header Checksum        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         source address                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      destination address                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             data                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             data                              |
   /                                                               /
   /                                                               /
   |                             data                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             data                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                       Example Internet Fragment

To produce the second fragment:

        (7)  Selectively copy the internet header (some options are not copied, see option definitions);
        (8)  Append the remaining data;
        (9)  Correct the header:
             //(5×4-0)/4=5,所以IHL=5
IHL <- (((OIHL*4)-(length of options not copied))+3)/4;
             //452-32×8-0=196
TL <- OTL - NFB*8 - (OIHL-IHL)*4);
//0+32
             FO <- OFO + NFB;
MF <- OMF;
Recompute Checksum;
        (10) Submit this fragment to the fragmentation test; DONE.
                                  
  And the second fragment.
                                    
    0                   1                   2                   3  
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |Ver= 4 |IHL= 5 |Type of Service|       Total Length = 216      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Identification = 111      |Flg=0|  Fragment Offset  =  32 |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Time = 119  | Protocol = 6  |        Header Checksum        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                         source address                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      destination address                      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             data                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             data                              |
   /                                                               /
   /                                                               /
   |                             data                              |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |            data               |                                
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                                

                       Example Internet Fragment
三握,四挥,滑动窗口会了吗?面试TCP/IP经典问题总是忘?快来这里~ 如上图,丢失也不用管,主机A继续自顾自往下发,主机B会不停的向A索要1001,连续几次以后,A意识到了1001丢包,就会重传1001~2000,主机B收到后,因为前面的数据B都接收到了,所以B返回ACK的确定序号为7001,A就知道什么意思了(表示7001以前的数据都收到了);把UDP报文的每一个字节都进行累加,加和放到两个字节的空间中(就算溢出也无所谓),最终的结果就是校验和,发送时,就先计算一个校验和,接收方按照相同规则在计算一遍,比较和发送方的校验和是否一致,若一致说明数据没有问题,不一致则有问题; 阅读详情

相关推荐

如何用Arduino和HX711压力传感器制作一个简易电子秤(含OLED显示)

本文详细介绍了如何使用Arduino、HX711压力传感器和OLED显示屏制作一个简易电子秤。从硬件连接到软件编程,提供了分步教程,包括核心元件功能解析、接线方法、库安装、模块测试以及关键的校准流程。项目实践性强,适合创客和DIY爱好者学习嵌入式系统与传感器应用。

tea88的博客 536

TCP/IP协议常见面试题

1、简述TCP的三次握手和四次挥手 SYN:请求建立连接,FIN:请求断开连接,ACK:确认是否有效, seq:序列号, ack:确认号 1)三次握手 1.客户端向服务端发送⼀个SYN=1(请求建立连接),并生成一个序列号seq=j。 2.服务端接收到SYN=1后,给客户端发送⼀个SYN=1与ACK=1;并将ack置为j+1;同时生成一个序列号seq=k。 3.客户端接收到会检查ack是否为j+1与ACK是否为1,如果是,则会给服务端发送一个ACK=1与ack=k+1,以及自己的序列号seq=j=

qq_41696018的博客 2万+

Word2vec核心模型精讲:CBOW与Skip-gram

Word2vec是Google提出的词向量模型,通过CBOW和Skip-gram两种神经网络架构将词汇映射到低维向量空间。CBOW通过上下文预测中心词,训练速度快但高频词表现更好;Skip-gram则相反,通过中心词预测上下文,适合处理生僻词。为解决softmax计算效率问题,Word2vec引入基于哈夫曼树的Hierarchical Softmax优化技术,将复杂度从O(V)降至O(logV)。文章详细解析了两种模型的原理差异,并演示了哈夫曼树的构造过程及其在词向量训练中的关键作用,这种结合词频的优

Trisyp的博客 529

TCP/IP相关面试题

请解释TCP/IP协议中的MTU和MSS是什么,它们之间有什么关系?请解释TCP/IP协议中的ARP缓存是什么?请解释TCP/IP的四层模型,包括每一层的作用和主要协议。请解释TCP/IP协议中的路由是什么?请列出TCP头部中的各字段含义,并解释它们的作用。请列出IP头部中的各字段含义,并解释它们的作用。请解释TCP的滑动窗口是什么,它的作用是什么?请解释TCP的流量控制是什么,它的作用是什么?请解释IPv4地址和IPv6地址的区别是什么?它与TCP的区别是什么?什么是TCP/IP协议?

西西弗的博客 5191

掌握 Unity 中的状态机:综合指南

最后,将拥有一个由状态机驱动的功能齐全的播放器控制器,可以集成到自己的项目中。此外,状态机有助于实现复杂的人工智能、玩家控制、动画系统等,从而形成更强大、更灵活的游戏架构。状态机是计算机科学和游戏开发中的一个基本概念,它通过定义一组有限的状态及其之间的转换来模拟实体的行为。你可以定义常见的状态行为,例如 Enter、Update 和 Exit 方法,确保整个状态机架构的一致性和连贯性。由于前面提到的状态类扩展了 BaseState 类,因此我们可以为具有不同状态的不同对象创建单独的类。

yolo模型训练找我,AI游戏合作找我 1452

S7-1200中时钟功能设定和读写调用的具体方法

S7-1200中时钟功能设定和读写调用的具体方法

Robot_PLC_HMI_Automation 1万+

TCP/IP网络协议栈面试经典题目

目录 面试官:看你简历说精通TCP和IP,那我们来讨论下网络模型和TCP、IP协议,讲下你的理解先 面试官:看你画的图,TCP有自己的首部结构,这都有哪些字段,最好说说它们的作用 面试官:那TCP和UDP有什么区别 面试官:刚才你说TCP是可靠的连接,它是怎么实现的 面试官:具体说一说三次握手和四次挥手机制 面试官:如果没有三次握手会有什么问题呢 面试官:TIME_WAIT和CLOSE_WAIT的区别在哪 面试官:TIME_WAIT的作用呢,还有为啥状态时间要保持两个MSL 面试官:刚才你

RToax 4724

逻辑回归:利用Python实现二分类算法

通过使用Python编写的代码,我们可以训练逻辑回归模型并进行预测。接下来,我们将实现逻辑回归算法的训练函数。训练函数将接受训练数据集X和对应的标签y,以及学习率alpha和迭代次数num_iterations。训练完成后,我们可以使用训练得到的参数theta来进行预测。在这个例子中,我们有一个包含4个样本的训练数据集X,每个样本有两个特征。在这个例子中,如果预测概率大于等于0.5,则预测为类别1,否则预测为类别0。现在,我们可以使用训练函数来训练模型。根据给定的样本x_new,预测函数将返回相应的类别。

XlltEditor的博客 326

面试常问tcp/ip等问题,看这篇文章就够了!

要说http就绕不开tcp,TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性。但是,http是基于tcp协议的。【注意】中断连接端可以是Client端,也可以是Server端。因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。

Java后端架构V 1032

【STM32+K210项目】基于K210智能人脸识别+车牌识别系统(完整工程资料源码)

随着时代的进步和科技的迅猛发展,人们对居住安全的重视程度不断提升,对安全防范系统的需求也日益增强。在安防系统中,门禁系统占据着重要的位置。传统的门禁控制方式主要依靠钥匙、密码和门禁卡等,这些方式易于被破解和复制,安全性较低。然而,近年来,生物识别技术的迅速发展和成熟,为解决这一问题提供了新的方案。生物识别技术具备便携性、非易失性、不易遗忘以及难以盗用等优点,逐渐被引入到门禁系统中。传统的小区门禁系统往往依赖人工管理,存在一定的局限性,难以满足用户多样化的需求,也浪费了人力资源。

嵌入式技术开发 1万+

C# + NAudio:构建支持实时音频处理的语音聊天应用(含回声消除)

本文介绍了如何利用C#和NAudio库开发实时语音聊天应用,重点实现回声消除功能。首先概述了NAudio库在音频处理中的作用,包括音频录制、播放和实时处理能力。然后详细讲解了构建基础语音聊天应用的过程,包括麦克风录制和扬声器播放的实现。接着深入探讨了回声消除的原理和实现方法,提出通过比较麦克风输入和扬声器输出的音频信号来消除回声,并给出了核心代码示例。最后,文章还讨论了性能优化方向,如多线程处理和网络传输扩展。该方案为开发高质量实时语音应用提供了实用参考。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1009

面试高频—TCP/IP十大问题—程序员必备基础素养

TCP/IP讲绝了!本文整理了一些TCP/IP协议簇中需要必知必会的十大问题,既是面试高频问题,又是程序员必备基础素养。

青春木鱼的博客 9981

5、数据库基础概念与数据建模全解析

本文深入解析了数据库的基础概念,包括函数依赖、决定因素和多值依赖等关键依赖关系,同时探讨了数据建模的重要方法论,如IDEF1X、信息工程和陈方法。此外,还介绍了SQL Server管理工作室的图表功能,帮助用户进行数据库的可视化设计。通过本文,读者将掌握数据库设计的核心知识,为构建高效、可扩展的数据库系统奠定基础。

81

Wireshark 提示和技巧 | TCP Reassembly

Wireshark 提示和技巧系列 | TCP Reassembly

7ACE的博客 2124

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

网络编程面试题(2020最新版)

文章目录计算机网络体系结构网络协议是什么?为什么要对网络协议分层?TCP/IP 协议族应用层运输层网络层数据链路层物理层TCP/IP 协议族TCP的三次握手四次挥手TCP报文的头部结构三次握手四次挥手常见面试题为什么TCP连接的时候是3次?2次不可以吗?为什么TCP连接的时候是3次,关闭的时候却是4次?为什么客户端发出第四次挥手的确认报文后要等2MSL的时间才能释放TCP连接?如果已经建立了连接,...

ThinkWon的博客 16万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

tcp/ip面试题整理

1.TCP/IP:四层模型。 ①网络接口层:对应物理层和数据链路层。 ②网络层 ③传输层 ④应用层:包括会话层、表示层、应用层。 2. TCP与UDP的区别。 (1)TCP:面向连接,可靠的,速度慢,效率低。 (2)UDP:无连接、不可靠、速度快、效率高。 当进程需要传输可靠的数据时应使用TCP,当进程需要高效传输数据,可以忽略可靠性时应使用UDP协议。 3.tc...

wind_cp的博客 1319

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

本文把 TCP/IP 讲绝了

一、TCP/IP模型 TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议。 基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。下图表示TCP/IP模型与OSI模型各层的对照关系。 快下载!PanDownload复活了!60MB/s TCP/IP协议族按照层次由上到下,层层包装。最上面的是应用层,这里面有http,f...

hellozhxy的博客 624

TCP/IP面试三道题

针对TCP/IP的面试题,我将从简单到困难给出三道题目,并附上参考答案的概要。

在那一刻,我们或许会发现自己站在了时间的另一岸,以更加成熟和宽广的胸怀,去拥抱那份隔代相传的深情。 4542

TCP/IP 原理理解和 面试题整理 - 网络弱项 常翻常新 每次握手都要过七层 了解 主要的路由和安全 转发层先

本文总结了TCP/IP协议的关键知识点和实践技巧,包括TCP连接状态分析、网络故障排查和内核参数优化。主要内容有: 使用netstat和awk命令统计TCP七种状态,分析TIME_WAIT等状态的成因及优化方案 通过调整tcp_tw_reuse等内核参数解决大量TIME_WAIT问题 TCP三次握手和四次挥手的详细过程解析 网络攻击检测方法,如利用netstat识别DDoS攻击源IP TCP越低,共分为应用层、传输层、网络层和链路层四层工作流程 面试常见TCP/IP问题整理 文章结合理论知识和实践命令,提供

yuezhilangniao的博客 969

面试必备!TCP协议经典十五连问!

网络

qq_23350817的博客 4601

网络协议之TCP/IP协议(面试必考内容) - javaEE初阶 - 细节狂魔

文章目录前言TCP/IP协议应用层常见的几种的协议模板xmljsonProtobuffer小结总结传输层UDPUDP协议端格式网络层数据链路层硬件层 前言 前面讲的 IO 和 网络初识,比较基础和简单,只是让大家喘口气。。。 网络socket编程,难度中等,大家仔细学,也是能学会的。   接下来这部分,也就是本篇博文。所讲得网络原理更加底层的东西,非常类似于多线程进阶,也就是为了应付面试的八股文。 前面的多线程进阶就是纯八股,而网络原理,其实还有比较清晰的脉络的, 相比前面还是比较好理解,但是也是有一定

DarkAndGrey的博客 1万+

网络入侵检测系统之Suricata(十一)--TCP重组实现详解

TCP重组一直是入侵检测系统中最为重要也是最难的一部分,它涉及到全流量的缓存,因此存储消耗十分巨大,据统计100万的会话就要产生1G~10G的内存缓存,因此设计一套TCP重组优化的算法十分必要,目前优化的办法有两种,一种是尽量不去TCP重组减少缓存包括红绿名单,配置,抽样算法,另一种就是将重组下沉到硬件例如FPGA,减少以软件方式缓存。

诗酒趁年华 1706

tcp段重组--suricata实现

tcp协议上的应用层协议检测时,需要做数据重组,这里简单介绍reassembly逻辑。 tcp处理的相关配置初始化位于main -&amp;amp;amp;gt; PostConfLoadedSetup -&amp;amp;amp;gt; PreRunInit -&amp;amp;amp;gt; StreamTcpInitConfig。 tcp reassembly的主体逻辑在FlowWorker -&amp;amp;amp;gt; StreamTcp中。 TCP 状态机&a

网络安全研究 8030

TCP/IP协议面试常问知识点,倾心总结

关于TCP/IP协议的倾心总结~

冷血之心的博客 1万+

【计网】TCP 协议详解 与 常见面试题

介绍了TCP/IP模型,以及各个层次的作用和协议,还详细介绍了TCP协议的建立与端口过程

xiaoxualg的博客 1686

面试题:TCP/IP协议,三次握手?四次挥手?

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

ughbnbjkk的博客 581
上一篇: 使用TCPServer与TCPClient收发文件--转贴
下一篇: Java 算法
helodd
博客等级 码龄24年 40粉丝 33原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值