随笔分类 -  UNIX网络编程

TCP回射客户服务器模型(02 设置套接字选项、处理多并发)
摘要:int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen); //设置套接字选项 回射服务器编写,服务器关闭后处于TIME_WAIT状态,过一段时间才可以绑定刚才的端口。在绑定服务器 阅读全文

posted @ 2018-02-03 16:54 wsw_seu 阅读(181) 评论(0) 推荐(0)

TCP回射客户服务器模型(01 socket bind listen accept connect)
摘要:socket函数(安装电话机)头文件:#include<sys/socket.h> int socket(int family, int type, int protocol); //返回套接字描述符sockfd, 失败返回-1参数 1、family:协议族PF_INET/AF_INET2、type 阅读全文

posted @ 2018-02-03 15:40 wsw_seu 阅读(209) 评论(0) 推荐(0)

socket套接字(字节序、地址转换)
摘要:什么是socket: socket可以看成是用户进程与内核网络协议栈的编程接口。 socket不仅可以用于本机的进程间通信,还可以用于网络上 不同主机之间的进程通信。IPv4套接口地址结构 struct sockaddr_in{ uint8_t sin_len; //整个sockaddr_in结构体 阅读全文

posted @ 2018-02-03 14:18 wsw_seu 阅读(433) 评论(0) 推荐(0)

TCP特点
摘要:1、基于字节流;面向连接;可靠传输;缓冲传输;全双工;流量控制。TCP如何保证可靠性:差错:校验和丢包:超时重传+确认失序:seq(序号)重复:seq(序号)1、数据被分割成TCP认为最合适发送的数据块,称为段传递给IP层2、当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果 阅读全文

posted @ 2018-02-02 16:18 wsw_seu 阅读(364) 评论(0) 推荐(0)

ISO/OSI参考模型
摘要:ISO/OSI参考模型: 1、应用层:提供应用程序间通信。应用层与应用程序界面沟通,以达到展示给用户的目的。常见的协议:HTTP、HTTPS、FTP、TELNET、SSH、SMTP等 2、表示层:处理数据格式、数据加密等。表示层对网络传输的数据进行交换,是的多个主机之间传递的信息能够相互理解,包括数 阅读全文

posted @ 2018-02-02 14:37 wsw_seu 阅读(799) 评论(0) 推荐(0)

访问百度的过程(转载)
摘要:假设你用一个全新的浏览器(第一次启动的那种),访问百度(http://www.baidu.com/),在你敲入网址并按下回车之后,将会发生以下神奇的事情: 浏览器先尝试从Host文件中获取http://www.baidu.com/对应的IP地址,如果能取到当然万事大吉大家都能嗨,如果不能,就使用DN 阅读全文

posted @ 2018-01-12 16:13 wsw_seu 阅读(1712) 评论(0) 推荐(0)

epoll内核源码详解(转 作者:赛罗·奥特曼 来源:牛客网)
摘要:发现自己发的一篇面经后,很多小伙伴向我索要epoll的内核源码实现,那我就在牛客网发下这源码还有自己总结的流程. 另外 网上很多博客说epoll使用了共享内存,这个是完全错误的 ,可以阅读源码,会发现完全没有使用共享内存的任何api, 而是 使用了copy_from_user跟__put_user进 阅读全文

posted @ 2018-01-12 09:27 wsw_seu 阅读(1347) 评论(0) 推荐(0)

大小端字节序
摘要:1、大小端是不同的对于数据在内存地址中的存放方式,不同的处理器(平台)的数据存储方式是不同。的如果实现跨平台通信则大小端是不能忽视的问题。大端模式:数据的高位存储在内存的低字节。ARM/PowerPC等处理器采用大端模式小端模式:数据的低位存储在内存的低字节。Intel架构处理器采用小端模式。如一个 阅读全文

posted @ 2018-01-08 14:42 wsw_seu 阅读(290) 评论(0) 推荐(0)

TCP与UDP的区别
摘要:TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。UDP补充: UDP不提供复杂的控制机制,利用IP提供面向无连接的通信服务。并且它是将应用程序发来的数据在收到的那一刻,立刻按照原样发送到网络上的一种机制。即使是出现网络拥堵 阅读全文

posted @ 2018-01-08 14:33 wsw_seu 阅读(149) 评论(0) 推荐(0)

TCP粘包问题的解决方案02——利用readline函数解决粘包问题
摘要:主要内容: 客户端程序: 服务器程序: 当我们传输如文件这种数据时,流式的传输非常适合,但是当我们传输指令之类的数据结构时,流式模型就有一个问题:无法知道指令的结束。所以粘包必须问题是必须解决的。 短连接 最简单的方法就是短连接,也就是需要发送数据的时候建立TCP连接,发送完一个数据包后就断开TCP 阅读全文

posted @ 2018-01-06 16:22 wsw_seu 阅读(794) 评论(2) 推荐(2)

TCP粘包问题的解决方案01——自定义包体
摘要:粘包问题解决方案:本质上是要在应用层维护消息与消息的边界。 1、定长包 2、包尾加\r\n(FTP协议) 3、包头加上包体长度 4、更加复杂的应用层协议 利用发送定常包解决粘包问题时,对于定长包的接收,是一个主要问题,在程序中,封装了readn(接收确切数目的读操作)与writen(发送。。。)函数 阅读全文

posted @ 2018-01-06 15:45 wsw_seu 阅读(818) 评论(0) 推荐(1)

TIME_WAIT状态存在的原因
摘要:TIME_WAIT状态存在有两个理由: 1、可靠地实现TCP全双工连接的中断 2、允许老的重复分节在网络中消失 第一个理由:如果客户端的ACK丢失了,服务器将会重新发送它的最终的那个FIN,因此客户端必须维护状态信息,以允许它重新发送最终的那个ACK。要是客户不维护状态信息,他将相应一个RST,该分 阅读全文

posted @ 2018-01-05 10:03 wsw_seu 阅读(860) 评论(0) 推荐(2)

IO复用之poll
摘要:主要用一个例程来讲解poll,包含客户端和服务器端。 poll函数没有FD_SETSIZE的限制 int poll(struct pollfd * fdarray, unsigned long nfds, int timeout) 客户端程序: 服务器端程序: Makefile文件 .PHONY:c 阅读全文

posted @ 2018-01-04 21:24 wsw_seu 阅读(470) 评论(0) 推荐(0)

导航