Linux网络编程
CZF_csdn
记录自己的成长,战胜自己。
展开
-
网络编程套接字【socket】
在学习Linux系统编程的时候,进程间的通信方式包括——管道、消息队列、共享内存、信号量等方式。但是这些通信方式都村子一定的缺陷——都是在同一个机器上的进程间的通信。为了让不同机器上的进程之间相互通信,Linux网络编程便可解决。linux系统支持套接字接口,可以通过与使用管道类似的方法来使用套接字,但套接字还包含了计算机网络的通信。Linux网络编程---套接字。套接字(socket)是...原创 2018-07-29 21:31:58 · 1006 阅读 · 0 评论 -
基于socket套接字的UDP/TCP服务器【网络编程】
基于socket套接字基本函数,我们就可以实现一些简单的回显服务器,及基于UDP/TCP的服务器和客户端。UDP回显服务器:简单思路:1.socket()创建socket套接口2.bind() 绑定IP地址端口号3.循环的从连接端口接收数据,并重新写入//////////////////////////////////////////////// 服务器:// 1.启...原创 2018-07-30 11:55:05 · 244 阅读 · 0 评论 -
TCP三次握手四次挥手【概念梳理】
TCP协议:传输控制协议,是一个有链接,可靠的,面向字节流的传输层协议。 TCP三次握手:1.怎么三次握手?从上面的两幅图中我们可以看出:第一次握手:SYN = 1, seq = x 客户端发送一个TCP的SYN标准位为1的包,知名客户端打算连接的服务器的端口(请求同步),并选择序号seq = x 表明传送数据时的第一个数据字节 的序号是x。seq是随机值。...原创 2018-07-31 15:52:32 · 302 阅读 · 0 评论 -
关于RTT、TTL、MSL的概念解释
1、 MSL 是Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”,他是任何报文在网络上存在的最长时间,超过这个时间报文将被丢弃。因为tcp报文 (segment)是ip数据报(datagram)的数据部分,具体称谓请参见《数据在网络各层中的称呼》一文; 2、ip头中有一个TTL域,TTL是 time to live的缩写,中文可以译为“...原创 2018-07-31 16:10:42 · 2298 阅读 · 1 评论 -
TCP的分段和IP的分片
今天被同学问到一个问题: TCP的分段和IP的分片有什么联系?先介绍两个概念:MSS:(Maxitum Segment Size)最大分段大小的缩写,是TCP协议里面的一个概念 MSS就是TCP数据包每次能够传输的最大数据分段。为了达到最佳的传输效能TCP协议在建立连接的时候通常要协商双方的MSS值,这个值TCP协议在实现的时候往往用MTU值代替(需要减去IP数据包包头的大小2...原创 2018-08-07 13:41:00 · 397 阅读 · 0 评论 -
基于ICMP协议的ping命令
要模拟实现ping命令,就需要对ICMP协议有所了解:ICMP:Internet控制报文协议,它是TCP/IP协议族中的一个子协议,用于在IP主机,路由之间传递信息的协议。传输的信息包括:1.目的不可达消息2.超时消息3.重定向消息4.时间戳请求和时间戳响应消息5.回显请求和回显响应消息。ping命令 的机制就是回显请求和回显应答消息,具体是向网络上另一个主机上发送...原创 2018-08-07 14:43:06 · 11591 阅读 · 1 评论 -
五种IO模型
高级IO模型共有五种:阻塞IO: 在内核将数据准备好之前, 系统调用会一直等待. 所有的套接字, 默认都是阻塞方式。 非阻塞IO: 如果内核还未将数据准备好, 系统调用仍然会直接返回, 并且返回EWOULDBLOCK错误码 ----- 非阻塞IO一般需要程序员循环的方式反复尝试读写文件描述符, 这个过程称为轮询. 这对CPU来说是较大的浪费, 一般只有特定场景下才使用。 信号驱动I...原创 2018-08-21 15:36:52 · 2959 阅读 · 0 评论