Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

修改UDP与TCP的速度区别 #77

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 26 additions & 39 deletions Part4/Network/TCP与UDP.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
TCP协议
-----


----------

- Transmission Control Protocol,传输控制协议
Expand All @@ -20,34 +19,32 @@ TCP协议
三次握手的过程:
--------


----------

1. 客户端发送:SYN = 1, SEQ = X, 端口号
2. 服务器回复:SYN = 1, ACK = X + 1, SEQ = Y
3. 客户端发送:ACK = Y + 1, SEQ = X + 1
1. 客户端发送:SYN = 1, SEQ = X, 端口号
2. 服务器回复:SYN = 1, ACK = X + 1, SEQ = Y
3. 客户端发送:ACK = Y + 1, SEQ = X + 1

> 确认应答信号ACK = 收到的SEQ + 1。
连接建立中,同步信号SYN始终为1。连接建立后,同步信号SYN=0。
> 连接建立中,同步信号SYN始终为1。连接建立后,同步信号SYN=0。

四次挥手过程
------

----------


1. A向B提出停止连接请求,FIN = 1
2. B收到,ACK = 1
3. B向A提出停止连接请求,FIN = 1
4. A收到,ACK = 1
1. A向B提出停止连接请求,FIN = 1
2. B收到,ACK = 1
3. B向A提出停止连接请求,FIN = 1
4. A收到,ACK = 1

**优点:**


----------

- 可靠,稳定
1、传递数据前,会有三次握手建立连接
1、传递数据前,会有三次握手建立连接
2、传递数据时,有确认、窗口、重传、拥塞控制
3、传递数据后,会断开连接节省系统资源

Expand All @@ -56,11 +53,11 @@ TCP协议
----------

- 传输慢,效率低,占用系统资源高
1、传递数据前,建立连接需要耗时
2、传递数据时,确认、重传、拥塞等会消耗大量时间以及CPU和内存等硬件资源
1、传递数据前,建立连接需要耗时
2、传递数据时,确认、重传、拥塞等会消耗大量时间以及CPU和内存等硬件资源

- 易被攻击
1、因为有确认机制,三次握手等机制,容易被人利用,实现DOS 、DDOS攻击
1、因为有确认机制,三次握手等机制,容易被人利用,实现DOS 、DDOS攻击

**如何保证接收的顺序性:**

Expand All @@ -75,7 +72,6 @@ TCP的每个报文都是有序号的。确认应答信号ACK=收到的SEQ+1
UDP协议
-----


----------

- User Data Protocol,用户数据包协议
Expand All @@ -99,31 +95,28 @@ UDP协议

**优点:**


----------


- 传输速率快
1、传输数据前,不需要像TCP一样建立连接
2、传输数据时,没有确认、窗口、重传、拥塞控制等机制
1、传输数据前,不需要像TCP一样建立连接
2、传输数据时,没有确认、窗口、重传、拥塞控制等机制

- 较安全
1、由于没有了TCP的一些机制,被攻击者利用的漏洞就少了

**缺点:**
1、由于没有了TCP的一些机制,被攻击者利用的漏洞就少了

**缺点:**

----------



- 不可靠,不稳定
1、由于没有了TCP的机制,在数据传输时如果网络不好,很可能丢包
1、由于没有了TCP的机制,在数据传输时如果网络不好,很可能丢包


**用UDP协议通讯时怎样得知目标机是否获得了数据包**


----------


Expand All @@ -134,7 +127,6 @@ UDP协议
TCP与UDP的区别
----------


----------

<table class="table table-bordered table-striped table-condensed">
Expand All @@ -155,8 +147,8 @@ TCP与UDP的区别
<td>UDP有边界</td>
</tr>
<tr>
<td>TCP速度快</td>
<td>UDP速度慢</td>
<td>TCP速度慢</td>
<td>UDP速度快</td>
</tr>
<tr>
<td>TCP面向字节流</td>
Expand All @@ -180,29 +172,26 @@ TCP与UDP的区别

**为什么UDP比TCP快**


----------


1. TCP需要三次握手
2. TCP有拥塞控制,控制流量等机制
1. TCP需要三次握手
2. TCP有拥塞控制,控制流量等机制



**为什么TCP比UDP可靠**


----------


1. TCP是面向有连接的,建立连接之后才发送数据;而UDP则不管对方存不存在都会发送数据。
2. TCP有确认机制,接收端每收到一个正确包都会回应给发送端。超时或者数据包不完整的话发送端会重传。UDP没有。因此可能丢包。
1. TCP是面向有连接的,建立连接之后才发送数据;而UDP则不管对方存不存在都会发送数据。
2. TCP有确认机制,接收端每收到一个正确包都会回应给发送端。超时或者数据包不完整的话发送端会重传。UDP没有。因此可能丢包。



**什么时候使用TCP**


----------


Expand All @@ -218,7 +207,6 @@ QQ文件传输

**什么时候应该使用UDP:**


----------


Expand All @@ -232,7 +220,6 @@ TFTP

**TCP无边界,UDP有边界**


----------
**TCP无边界**

Expand Down