计算机网络--TCP、UDP相关概念

目录

一、TCP拥塞控制

几种拥塞控制的方法:

(1)慢启动

 (2)快速恢复

 (3)快速重传

 二、三次握手、四次挥手抓包

三、UDP 的编程流程

概念

部分代码

特点:


一、TCP拥塞控制

在计算机网络中的链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的 资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分, 网络的性能就要变坏。这种情况就叫做拥塞。 所谓拥塞控制就是防止过多的数据注 入到网络中,这样可以使网络中的路由器或链路不致过载。拥塞控制是一个全局性的 过程,涉及到所有主机,所有路由器,以及与降低网络传输性能有关的所有因素。

几种拥塞控制的方法:

慢开始 拥塞避免 快速重传 快速恢复

(1)慢启动

 (2)快速恢复

 (3)快速重传

 二、三次握手、四次挥手抓包

sudo tcpdump -i ens33 -nt '(src 192.168.31.143 and dst 192.168.31.213) or (src192.168.31.213 and dst 192.168.31.143 ) '

三、UDP 的编程流程

概念

无链接的,不可靠的,数据报服务

socket()用来创建套接字,使用 udp 协议时,选择数据报服务 SOCK_DGRAM。 sendto()用来发送数据,由于 UDP 是无连接的,每次发送数据都需要指定对端的地 址(IP 和端口)。 recvfrom()接收数据,每次都需要传给该方法一个地址结构来存 放发送端的地址。recvfrom()可以接收所有客户端发送给当前应用程序的数据,并 不是只能接收某一个客户端的数据。

部分代码

//UDP 数据读写:

ssize_t recvfrom(int sockfd, void *buff, size_t len, int flags,

struct sockaddr* src_addr, socklen_t *addrlen);

ssize_t sendto(int sockfd, void *buff, size_t len, int flags,

struct sockaddr* dest_addr, socklen_t addrlen);

//recvfrom()读取 sockfd 上的数据, buff 和 len 参数分别指定读缓冲区的位置和大小 //src_addr 记录发送端的 socket 地址

//addrlen 指定该地址的长度

//sendto()往 socket 上写入数据, buff 和 len 参数分别指定写缓冲区的位置和 数据长度 //dest_addr 指定接收数据端的 socket 地址 //addrlen 指定该地址的长度

特点:

 无链接的,不可靠的,数据报服务;

1)多个客户端可以同时给服务器发送数据(因为没有建立链接,也就是说服务器没有只 和某一个客户端建立链接);

2)服务器关掉再打开是可以接收数据的; (因为没有建立链接)

3)数据报接收的特点:

 UDP 数据报服务特点: 发送端应用程序每执行一次写操作, UDP 模块就将其封装 成一个 UDP 数据报发送。

接收端必须及时针对每一个 UDP 数据报执行读操作,否 则就会丢包。

并且,如果用户没有指定足够的应用程序缓冲区来读取 UDP 数据,则 UDP 数据将被截断。

也就是udp协议sendto和recvfrom的次数是相同的,不会出现沾包;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值