![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux网络编程
文章平均质量分 55
1
打酱油的;
这个作者很懒,什么都没留下…
展开
-
TCP流量控制-滑动窗口
滑动窗口每一次读取数据之后,回ack报文,报文中会携带当前缓冲区大小,用来告知对方原创 2022-03-07 23:23:22 · 379 阅读 · 0 评论 -
TCP通信协议
说明:三次握手建立连接四次挥手断开连接TCP通信时序下图是一次TCP通讯的时序图。TCP连接建立断开。包含大家熟知的三次握手和四次握手。TCP通讯时序在这个例子中,首先客户端主动发起连接、发送请求,然后服务器端响应请求,然后客户端主动关闭连接。两条竖线表示通讯的两端,从上到下表示时间的先后顺序,注意,数据从一端传到网络的另一端也需要时间,所以图中的箭头都是斜的。双方发送的段按时间顺序编号为1-10,各段中的主要信息在箭头上标出,例如段2的箭头上标着SYN, 8000(0), ACK1001,原创 2022-02-17 00:20:44 · 3507 阅读 · 0 评论 -
TCP服务器代码讲解
本人手撕一段,很多地方没有判断清楚,不利于调试/* ************************************************************************ * Filename: 01tcp_server.c * Description: * Version: 1.0 * Created: 2019骞?2鏈?2鏃?10鏃?2鍒?7绉? * Revision: none *原创 2022-02-16 15:57:56 · 1237 阅读 · 0 评论 -
TCP服务器通信流程
1.服务器通信模型tcp服务器接电话模型:创建套接字(服务器电话),绑定ip和端口在套接字上(绑定固定电话号码),监听有没有新在连接(监听),接受连接(接听电话),收发数据(读写对socket文件操作)(说话交流),关闭(挂电话)说明:一台主机可能多个ip所以得绑定说明:客户端不用绑定,系统随机分配一个端口给他详细具体过程说明:listen监听创建一个已完成队列和未完成队列,未完成队列经过三次握手到达已完成队列中,将服务器变成被动接收模式accept从已完成队列中提取连接,得到一个新的已原创 2022-02-15 22:18:06 · 1992 阅读 · 0 评论 -
TCP客户端通信流程(重要)
1.TCP介绍传输控制协议特点:出错重穿,每次发送数据对方都会回ACK安全可靠2.服务器客户端TCP通信模型客户端:打电话模型(建立连接,使用连接,关闭连接)创建套接字 (拨号)–连接服务器(连接)–收发数据(读写对socket文件操作)(说话交流)–关闭(挂电话)相关函数说明1. socket函数 – 语意:创建套接字#include <sys/types.h> / See NOTES /#include <sys/socket.h>int soc原创 2022-02-15 11:40:16 · 2412 阅读 · 0 评论 -
网络通信基础套件--IPV4套接字结构体
1.网络通信解决在三大问题2.ipv4套接字结构体strcut sockaddr 很多网络编程函数诞生早于IPv4协议,那时候都使用的是sockaddr结构体,为了向前兼容,现在sockaddr退化成了(void *)的作用,传递一个地址给函数,至于这个函数是sockaddr_in还是sockaddr_in6,由地址族确定,然后函数内部再强制类型转化为所需的地址类型。通用套接字结构体struct sockaddr { sa_family_t sa_family; /* address f原创 2022-02-14 17:10:39 · 506 阅读 · 0 评论 -
网络字节序和主机字节序
网络字节序说明TCP/IP协议规定,网络数据流应采用大端字节序,即低地址高字节。例如上一节的UDP段格式,地址0-1是16位的源端口号,如果这个端口号是1000(0x3e8),则地址0是0x03,地址1是0xe8,也就是先发0x03,再发0xe8,这16位在发送主机的缓冲区中也应该是低地址存0x03,高地址存0xe8。但是,如果发送主机是小端字节序的,这16位被解释成0xe803,而不是1000。因此,发送主机把1000填到发送缓冲区之前需要做字节序的转换。同样地,接收主机如果是小端字节序的,接到16位的原创 2022-02-14 16:27:18 · 1135 阅读 · 0 评论 -
不同主机间进程通信方式--socket
1.引入2.socket概念Socket本身有“插座”的意思,在Linux环境下,用于表示进程间网络通信的特殊文件类型。本质为内核借助缓冲区形成的伪文件。既然是文件,那么理所当然的,我们可以使用文件描述符引用套接字。与管道类似的,Linux系统将其封装成文件的目的是为了统一接口,使得读写套接字和读写文件的操作一致。区别是管道主要应用于本地进程间通信,而套接字多应用于网络进程间数据的传递。一一对应,成对出现是一种伪文件全双工通信在网络通信中,套接字一定是成对出现的。一端的发送缓冲区对应对端的接原创 2022-02-11 16:51:07 · 1919 阅读 · 0 评论 -
编程知识 -- 字节序和常用运算符
1.字节序概念低对应低:小字节序高对应高:大字节序2.常用运算符左移几位x2的几次方右移几位除2的几次方移位取反,异或,位与,位或实现的功能:取反:全部取反异或:按位取反位与:按位置零位或:按位置一...原创 2022-01-26 17:36:34 · 311 阅读 · 0 评论 -
网络应用程序设计模式
网络应用程序设计模式C/S模式客户端与服务器传统的网络应用设计模式,客户机(client)/服务器(server)模式。需要在通讯两端各自部署客户机和服务器来完成数据通信。B/S模式浏览器与服务器浏览器()/服务器(server)模式。只需在一端部署服务器,而另外一端使用每台PC都默认配置的浏览器即可完成数据的传输。优缺点对于C/S模式来说,其优点明显。客户端位于目标主机上可以保证性能,将数据缓存至客户端本地,从而提高数据传输效率。且,一般来说客户端和服务器程序由一个开发团队创作,所以他们原创 2022-02-11 10:53:23 · 288 阅读 · 0 评论 -
网络通信过程
组包每一层都有对应的协议arp协议在一个局域网内一台主机向另一台主机广播,请求mac地址,所以主机都收到广播,只有被请求的主机做出答复ARP协议包原创 2022-02-11 10:36:28 · 2761 阅读 · 0 评论 -
通信准则--通信协议
1.什么是协议从应用的角度出发,协议可理解为“规则”,是数据传输和数据的解释的规则。假设,A、B双方欲传输文件。规定:第一次,传输文件名,接收方接收到文件名,应答OK给传输方;第二次,发送文件的尺寸,接收方接收到该数据再次应答一个OK;第三次,传输文件内容。同样,接收方接收数据完成后应答OK表示文件内容接收成功。由此,无论A、B之间传递何种文件,都是通过三次数据传输来完成。A、B之间形成了一个最简单的数据传输规则。双方都按此规则发送、接收数据。A、B之间达成的这个相互遵守的规则即为协议。这种仅原创 2022-02-10 17:59:19 · 348 阅读 · 0 评论 -
网络通信模型--网络osi tcp/ip分层
OSI七层模型OSI模型物理层:主要定义物理设备标准,如网线的接口类型、光纤的接口类型、各种传输介质的传输速率等。它的主要作用是传输比特流(就是由1、0转化为电流强弱来进行传输,到达目的地后再转化为1、0,也就是我们常说的数模转换与模数转换)。这一层的数据叫做比特。 数据链路层:定义了如何让格式化数据以帧为单位进行传输,以及如何让控制对物理介质的访问。这一层通常还提供错误检测和纠正,以确保数据的可靠传输。如:串口通信中使用到的115200、8、N、1 网络层:在位于不同地理位置的网.原创 2022-03-07 22:55:31 · 378 阅读 · 0 评论 -
网络端口使用
1.概念进程上的固定标识,2个字节 0-655352.作用用来标识应用程序,标识进程’远程连接用一种应用专门用来标识端口号3.类型说明:一个应用程序可以存在多个端口,不同功能不同缓冲区,不同端口标识一个程序多个端口,但是一个端口不能多个程序可以重复使用...原创 2022-02-10 15:49:47 · 945 阅读 · 0 评论 -
连接模式- 桥接和net
虚拟机俩种连接模式net模式主机和虚拟机产生一个虚拟IP地址通信,虚拟机要通过主机与外面通信桥接设置虚拟机和主机一个网段原创 2022-02-10 15:28:18 · 609 阅读 · 0 评论 -
mac和ip
wlan:WiFi以太网:有线网卡01,08:虚拟网卡1.mac地址概念标识网卡,全球唯一,不会改变,6个字节 共48位地址2.IP地址概念标识主机id,id是虚拟的会改变的,4个字节 32位地址ip将其子网分为子网id和主机id,俩个结合一起看其他写法24代表子网掩码是24,24个110.1.1.2/24几个概念被掩码1覆盖的是子网id被掩码0覆盖的是主机id子网id补0为网段,子网id补1为广播,网管是补一个1ping:用来测试俩台主机联通性,俩台主机可以来回.原创 2022-02-10 15:27:39 · 565 阅读 · 0 评论