当前位置:网站首页>[how to connect the network] Chapter 2 (next): receiving a network packet
[how to connect the network] Chapter 2 (next): receiving a network packet
2022-06-26 13:16:00 【Currybeefer】
Previously, we discussed the sending of a network packet , Now let's take a look at what a computer or server will do when it receives a network packet .
In a half duplex Ethernet , Packets sent by a device will be received by all devices connected to the hub , So the receive operation will receive many packets that may not be sent to itself .
First PHY(MAU) The module first converts the signal into a general format and then sends it to MAC modular ,MAC The module reads the synchronization clock of the header and the start frame delimiter , Convert everything behind the section break into digital information , Check the tail again FCS See if there is any error in this package , If something goes wrong, throw it away .
If FCS That's right ,MAC The module is about to query MAC Receiver's in the header MAC Address and own network card MAC Is the address consistent , To determine whether the bag was sent to you , If not, discard the bag . If yes, drop the packet into the buffer of the network card , Then the network card will call the interrupt of the operating system , Let the operating system protocol stack look at the newly received package .
After the protocol stack comes , Namely IP The work of the module ,IP The module will view the data package IP Header information , confirm IP The address of the receiver in the header is not itself . If not ,IP The module will send ICMP The message informs the sender of the error .
If correct , Then give it to TCP The module handles ,TCP Module will view IP Sender of header IP Address and receiver IP Address , as well as TCP The port numbers of the sender and receiver of the header are used to find out whether there is a corresponding socket in their protocol stack , Find the corresponding socket , Then you can carry out the corresponding operation . for example , If the contents of the package are data , Then return to confirm the received packet , Then put the data into the buffer and other upper applications ( browser ) To read . If it is a connected or disconnected package , Then the corresponding response control package , Then tell the upper application the corresponding status .
There's also a little Tips
Send the whole , forward , The whole process of receiving can refer to this animation , Very detailed :
https://www.bilibili.com/video/BV1c4411d7jb?p=9&vd_source=5898cd61d2d78c3c6feae32e4c4101c6
边栏推荐
猜你喜欢
Dark horse notes - Common APIs
IDC report: the AI cloud market share of Baidu AI Cloud ranks first for six consecutive times
Beifu PLC obtains system time, local time, current time zone and system time zone conversion through program
Vivado error code [drc pdcn-2721] resolution
Explain C language 10 in detail (C language series)
装饰器(Decorator)
享元模式(Flyweight)
mysql讲解(一)
Electron official docs series: Processes in Electron
5月产品升级观察站
随机推荐
MySQL数据库讲解(五)
mariadb学习笔记
UVa11582 [快速幂]Colossal Fibonacci Numbers!
8. [STM32] timer (TIM) -- interrupt, PWM, input capture experiment (proficient in timer)
HDU 3709 Balanced Number
UVA5009 Error Curves三分
Update and download of Beifu EtherCAT XML description file
外观模式(Facade)
mysql讲解(一)
Electron official docs series: Development
D - skiing
装饰器(Decorator)
Beifu PLC realizes data power-off maintenance based on cx5130
Electron official docs series: Development
F - Charm Bracelet
Digital signal processing -- Design of linear phase type (Ⅰ, Ⅲ) FIR filter (1)
Uva10341 solve it
HDU 3555 Bomb
Electron official docs series: Best Practices
E - Apple Catching