当前位置:网站首页>UDP protocol: simple because of good nature, it is inevitable to encounter "city can play"
UDP protocol: simple because of good nature, it is inevitable to encounter "city can play"
2022-07-06 18:11:00 【Zhang quandan, Foxconn quality inspector】
TCP and UDP What are the differences ?
I usually ask the difference between the two agreements during the interview , Most people will answer ,TCP It's connection-oriented ,UDP It's for connectionless .
What is connection oriented , What is connectionless ? Before intercommunication , The connection oriented protocol establishes the connection first . for example ,TCP Will shake hands three times , and UDP Can't . Why establish a connection ? you TCP Three handshakes , I UDP You can also send three bags to play , What's the difference ?
The so-called establishing a connection , To maintain the connection between the client and the server , And establish a certain data structure to maintain the state of interaction between the two sides , Use this data structure to guarantee the so-called connection oriented features .
for example ,TCP Provide reliable delivery . adopt TCP Connect the transmitted data , No mistakes 、 No loss 、 No repetition 、 And arrive in order . We all know IP There is no reliability guarantee for the package , Once sent out , It's like learning from the West , Lost it 、 Eaten by monsters , Can only let it go . however TCP It claims to be able to do what the connection maintenance program does , and UDP Inherited IP Package features , There is no guarantee that it will not be lost , There is no guarantee of arrival in order .
Again ,TCP Is oriented to a byte stream . When sending, you send a stream , No head, no tail .IP A package is not a stream , But one by one IP package . The reason why it becomes a stream , This is also TCP Your own state maintenance . and UDP Inherited IP Characteristics of , Datagram based , One by one , One by one .
also TCP There can be congestion control . It realizes that the packet is discarded or the network environment is bad , Will adjust their behavior according to the situation , See if it's fast , Would you like to slow down .UDP Won't , The app let me send , I'll send it , Despite the flood .
thus TCP It's actually a stateful service , Generally speaking, it's a brain , It accurately remembers whether it has been sent , Received no , To which , Which should be accepted , No mistake at all . and UDP Stateless service . Generally speaking, it's mindless , Innocent , Just send it out .
UDP What is Baotou like ?
When I send UDP When the package reaches the target machine , Find out MAC Address matching , So he took it down , Pass the rest of the packets to the processor IP Layer code . hold IP Take off your head , Finding goals IP matching , The next? ? Who is the packet in here for ?
At the time of sending , I know I sent a UDP My bag , How did you know about the machine you received ? So in IP There's a... In the head 8 Bit agreement , It will store , What's in the data TCP still UDP, Of course, here it is UDP. therefore , If we knew UDP The format of the head , From the data , Parse it out . After analyzing it ? Who will process the data ?
After dealing with the transport layer , The kernel is basically done , The data inside should be handled by the application itself , But there are so many applications running on one machine , Who should I give it to ?
Regardless of application write usage TCP The data transfer , still UDP The data transfer , Listen to a port . It is this port , Used to distinguish applications , Let's say that ports cannot conflict . Two applications listen on one port , Who will you give it to then ? therefore , Logically speaking , Whether it's TCP still UDP There should be a port number in the header , According to the port number , Give the data to the corresponding application .
When we see UDP When Baotou , It is found that there is indeed a port number , Active port number and target port number . Because it's communication between two ends , That makes sense . But you will also find ,UDP Except for the port number , There is nothing else . and TCP Head to head , This is simply a mess !
UDP Three characteristics of
UDP Just like a child , It has the following characteristics :
- First of all , Simple communication , You don't need a belly of fancy intestines ( A lot of data structures 、 Processing logic 、 Header field ). The premise is that it believes that the online world is beautiful , Uphold the theory of good nature , I believe that the default of network channel is easy to deliver , Not easily discarded .
- second , Credulity . It doesn't make connections , Although there is a port number , But monitoring is in this place , Anyone can send him data , He can also send data to anyone , It can even be transmitted to multiple personal data at the same time .
- Third , I'm so stupid , Don't know how to change things . I don't know when to insist , When should we give way . It will not control the congestion of the contract according to the situation of the network , No matter what happens to network packet loss , How it should be sent back .
边栏推荐
- 推荐好用的后台管理脚手架,人人开源
- Mysqlimport imports data files into the database
- Common - magic number 7
- Codeforces Round #803 (Div. 2)
- Interview assault 63: how to remove duplication in MySQL?
- The latest financial report release + tmall 618 double top, Nike energy leads the next 50 years
- This article discusses the memory layout of objects in the JVM, as well as the principle and application of memory alignment and compression pointer
- Shell input a string of numbers to determine whether it is a mobile phone number
- Implementation of queue
- adb常用命令
猜你喜欢
Cool Lehman has a variety of AI digital human images to create a vr virtual exhibition hall with a sense of technology
Compilation principle - top-down analysis and recursive descent analysis construction (notes)
【Android】Kotlin代码编写规范化文档
Summary of Android interview questions of Dachang in 2022 (I) (including answers)
Rb157-asemi rectifier bridge RB157
Comparative examples of C language pointers *p++, * (p++), * ++p, * (++p), (*p) + +, +(*p)
Selected technical experts from China Mobile, ant, SF, and Xingsheng will show you the guarantee of architecture stability
虚拟机VirtualBox和Vagrant安装
I want to say more about this communication failure
1700C - Helping the Nature
随机推荐
酷雷曼多种AI数字人形象,打造科技感VR虚拟展厅
There is a gap in traditional home decoration. VR panoramic home decoration allows you to experience the completion effect of your new house
Markdown grammar - better blogging
Comparative examples of C language pointers *p++, * (p++), * ++p, * (++p), (*p) + +, +(*p)
HMS core machine learning service creates a new "sound" state of simultaneous interpreting translation, and AI makes international exchanges smoother
最新财报发布+天猫618双榜第一,耐克蓄力领跑下个50年
Running the service with systemctl in the container reports an error: failed to get D-Bus connection: operation not permitted (solution)
The shell generates JSON arrays and inserts them into the database
C语言指针*p++、*(p++)、*++p、*(++p)、(*p)++、++(*p)对比实例
2022暑期项目实训(二)
8位MCU跑RTOS有没有意义?
Nodejs developer roadmap 2022 zero foundation Learning Guide
MSF横向之MSF端口转发+路由表+SOCKS5+proxychains
Appium automated test scroll and drag_ and_ Drop slides according to element position
Interview shock 62: what are the precautions for group by?
开源与安全的“冰与火之歌”
Principle and usage of extern
This article discusses the memory layout of objects in the JVM, as well as the principle and application of memory alignment and compression pointer
The integrated real-time HTAP database stonedb, how to replace MySQL and achieve nearly a hundredfold performance improvement
Growth of operation and maintenance Xiaobai - week 7