![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
文章平均质量分 87
HT . WANG
Think Twice , Code Once
展开
-
Linux网络编程(高级IO)-典型IO,多路IO复用
IO:输入输出 过程:等待IO就绪,进行数据拷贝 四种典型IO方式: (1)阻塞IO:发起IO调用,若IO未就绪(IO条件不具备)则一直等待(2)非阻塞IO:发起IO调用,若IO未就绪(IO条件不具备)则立即报错返回,隔一段时间重新发起IO调用(3)信号驱动IO:自定义IO信号处理,等待IO就绪,收到信号打断当前操作进行IO(4)异步IO:自定义IO信号处理,发起异步IO调用,调用立即返回,但让系统完成IO,完成后通过信号通知进程阻塞:为了完成一个功能,发起调用..原创 2021-07-04 18:01:33 · 1658 阅读 · 3 评论 -
Linux网络编程(数据链路层)
数据链路层:负责相邻设备之间数据传输以太网协议:如何获取相邻指定设备的mac地址:ARP协议ARP协议:介于网络层和链路层之间的协议 通过IP地址获取MAC地址在局域网广播ARP请求(smac+sip+dmac +dip)以太网中对端mac地址全为1相邻设备收到ARP请求后,检测目的ip地址与自己是否相同,如果不相同则直接丢弃,如果相同则组织ARP应答,将自己mac地址填充进行回复 两端都会将mac-ip的映射关系保存一段时间后丢弃,防止DHCP动态分配ip导致ip改变影..原创 2021-07-04 16:06:33 · 2019 阅读 · 1 评论 -
Linux网络编程(网络层)-ip协议/地址管理/路由选择
网络层:负责地质管理与路由选择 IP协议: 注:udp报文大小大于MTU,则会在网络层进行数据分片,分割成多个小的数据分片进行传输MTU:最大传输单元 (链路层所限制的一个最大数据帧大小)以太网默认1500tcp传输不会在网络层进行数据分片,tcp在三次握手阶段就会双方协商mss(最大数据段大小),所以在通信时,传输数据大小都不会大于mssMSS就是根据MTU计算出的最合适的数据传输大小 mss=mtu-ip-tcp 地址管理: ip地址组成:网络号+主机号..原创 2021-07-03 22:44:29 · 1573 阅读 · 2 评论 -
Linux网络编程(传输层协议 )—tcp三次握手/四次挥手
传输层协议:负责应用程序之间数据传输-TCP/UDPUDP协议:16位源端-对端端口:用于描述识别通信两端进程16位数据报长度:能够存储最大数字 65535,(udp报文总大小不超过64k)16位校验和:二进制反码求和算法——校验接收方接收到数据与发送方发送数据是否一致协议特性:无连接(只要知道对端地址即可直接发送) 不可靠(不保证数据安全,不保证数据有序到达对端) 面向数据报:无连接,不可靠,无序,有最大长度限制的传输方式注:udp传输时,sendto发送的数据会被放原创 2021-06-22 22:01:53 · 1602 阅读 · 3 评论 -
Linux网络编程(协议解析)
协议解析 协议基础 自定制协议:程序员自己定制的协议应用层协议:如何将多个数据对象组织成为一个二进制数据串进行传输需要考虑传输性能和解析性能,解析性能高的不一定传输性能高比如:struct {int num1,int num2,char op} 解析方便 但由于占用内存大导致传输性能较低 序列化 序列化:将多个数据对象按照指定协议进行组织实现持久化存储或者网络通信传输的二进制数据串的过程反序列化:按照指定协议将二进制数据串解析得到各个数据对象的过程典型序列化方式:..原创 2021-06-06 18:02:56 · 2221 阅读 · 6 评论 -
Linux网络编程(IP地址,端口,通信协议,网络字节序)
局域网,城域网,广域网:根据覆盖范围进行的网络划分互联网(因特网):国际性更大范围的广域网以太网,令牌环网:组网方式原创 2021-05-08 08:51:00 · 1696 阅读 · 1 评论 -
Linux网络编程(套接字编程)
socket套接字编程 udp协议与tcp协议区别 udp协议: udp协议:用户数据报协议 特性:无连接,不可靠,面向数据报 应用场景:实时性要求大于安全性(类似于短信发送)eg.视频传输 tcp协议: tcp协议:传输控制协议 特性:面向连接,可靠传输,面向字节流 应用场景:安...原创 2021-05-15 18:12:42 · 1971 阅读 · 3 评论