网络编程学习记录_5

1.抓包分析三次握手和四次挥手

  1. 安装wireshark

  1. 启动wireshark

  1. 启动wireshark

2.UDP协议

TCP是有连接的,可靠的传输层协议。

UDP是无连接的,不保证可靠的传输层协议。

UDP的使用场景:

  1. 对传输效率要求高,对可靠性要求不高的场景,比如视频聊天。
  2. 对于小尺寸数据,广播、组播场景。

UDP为啥不可靠:

  1. 丢包不会重发
  2. UDP校验和允许关闭。

可靠性 > 实时性:选TCP

实时性 > 可靠性:选UDP

       UDP的缺点:

  1. 不保证可靠
  2. UDP有长度限制。

UDP的优点:

  1. 实时性高。

如果想用UDP,又想要保证可靠性,需要应用层自己做响应确认。

  1. UDP的服务器和客户端模型

3.IO模型

 

  1. 阻塞IO

对于接收消息:如果没有消息可读,函数挂住不返回。

对于发送消息:如果发送缓冲区不足,发送函数挂住不返回。

优点:简单,常用。

缺点:如果通道损坏,程序就挂死了。

  1. 非阻塞IO

while (1) {

       ret = read();

if (ret < 0 && errno == xxx) {

       // 没有读到数据处理

    continue;

}

// 读到数据处理

}

对于接收消息:不管有没有读到消息,函数都会返回,需要调用自己做判断处理。

缺点:不常用,效率低,消耗CPU资源。

优点:可以防止进程阻塞在IO上。

非阻塞套接字设置方法:

  1. 信号驱动IO

void sigFunc(int signo)

{

       read();

}

signal(SIGIO, sigFunc);

// 继续处理其他业务

  1. I/O 多路复用

Linux进程默认最多能打开1024个文件描述符。0代表标准输入,1代表标准输出。2标准错误。

1秒=10^3毫秒=10^6微秒

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值