IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> Linux总结-----2 -> 正文阅读

[网络协议]Linux总结-----2

1.网络编程

提供进程间通信
1、网络 :由若干结点和链接这些节点的链路组成(计算机、交换机、路由器)
目的:进行信息交互、资源共享
2、互联网:多个网络连接起来构成互联网

1.1 IP地址

1、ip地址:唯一标识一台主机
端口号:在主机上标识一个进程
2、套接字地址结构:

  • 创建套接字:socket()
  • 确定进程:ip+port
  • 网络字节序列:大端

1.2 协议

一组约定,规则
1、分层:
tcp/ip 模型:数据链路层->网络层->传输层->应用层
网络层:ip
传输层:tcp、udp
应用层:http
2、为什么分层
将大问题分模块,小模块易于实现。分为不同的层,每一层采用合适的办法解决该层的问题,实现起来更灵活。

2.编程流程

2.1 TCP服务器客户端编程流程

tcp特点:面向连接的,可靠的(应答确认,超时重传,滑动窗口进行流量控制,乱序重排,去重),流式服务
在这里插入图片描述
connect():由客户端程序执行,开始发起连接,也就是开始进行三次握手
在这里插入图片描述
send():
在这里插入图片描述
查看接收/发送缓冲区:netstat -natp
端口:小于1024是知名端口(管理员)
5000以内,保留的端口,
5000以上,临时端口

close():
四次挥手
在这里插入图片描述
也可以三次完成
1、客户端连接在收到服务器的结束报文段后,并没有直接进入CLOSED状态,而是转移到TIME_WAIT状态
TIME_WAIT状态存在的原因:

  • 可靠的终止TCP连接
  • 保证让迟来的TCP报文段有足够时间被识别丢弃

2.2 UDP 服务器客户端编程流程

udp特点:无连接,不可靠,数据报
send:发送出去就不管,实时性,可能会丢包

2.3 HTTP(应用层协议)

超文本传输协议
在这里插入图片描述
长链接:两个以上的请求可以复用同一个连接
短连接:发送一个请求,就会close()

2.4 I/O复用

方法: select poll epoll
poll和epoll的区别:
poll(select):

  • 每次循环都需要向内核空间拷贝数据
  • 内核实现:轮询,O(n)
  • 遍历所有描述符 O(n)

epoll(处理大量描述符):
创建:epoll_creat、epoll_ctl、epoll_wait

  • 创建内核时间表,每个描述符只需要拷贝一次
  • 内核实现:注册回调函数O(1)
  • 用户检索到就绪面描述符O(1)
  • LT:一直提醒,直至实现
  • ET:只提醒一次

2.5守护进程编程流程

守护进程是在后台运行不受终端控制的进程

  1. 先fork()再退出父进程,变为普通的组员进程
  2. 调用setsid(),成功创建新的会话
  3. fork()退出父进程(为了丢掉组员进程身份)
  4. chdir(“/”)更改工作路径
  5. umask(0)清除掩码(去除权限)
  6. close 关闭描述符
  7. 处理僵死进程

今天也要好好学习呀~

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:35:43  更:2021-07-27 16:35:54 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 11:50:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码