网络编程
文章平均质量分 92
。。
啥也不会 ,吃了就睡
展开
-
可靠数据传输协议特点(确认应答,超时重传,发送序号,流量控制,拥塞控制)
文章目录1确认应答1.1问题1.2解决思路1.3解决方案2超时重传2.1问题2.2解决方案3发送序号3.1问题3.2解决方案4滑动窗口(流量控制)5拥塞控制5.1拥塞概念5.2 拥塞控制的概念5.2.1基本概念5.2.2超时重传的概念5.2.3拥塞控制的步骤5.3拥塞控制方法5.3.1慢开始5.3.2拥塞避免5.3.3快重传5.3.4 快恢复5.4总结1确认应答1.1问题实际信道不能保证处...原创 2020-05-03 19:40:04 · 997 阅读 · 0 评论 -
面试部分----计算机网络+网络编程
1为什么是2MSL概念: 2MSL:Maximum Segment Lifetime英文的缩写,中文可以译为“报文最大生存时间”为了保证客户端发送的最后一个ACK报文段能够到达服务器。因为这个ACK有可能丢失,从而导致处在LAST-ACK状态的服务器收不到对FIN-ACK的确认报文。服务器会超时重传这个FIN-ACK,接着客户端再重传一次确认,重新启动时间等待计时器。最后客户端和服务器...原创 2020-05-03 18:10:39 · 113 阅读 · 0 评论 -
linux网络--基础配置命令
1修改主机名1.1临时方法//查看主机名[root@oidboy home]# hostnameoidboy[root@oidboy home]# hostname lvke[root@oidboy home]# hostnamelvke要退出当前的shell‘才生效 但是重新开机就失效了1.2永久方法1.2.1方法1步骤1修改配置文件[root@oidboy h...原创 2020-04-09 20:16:09 · 456 阅读 · 0 评论 -
linux网络编程-TCP协议
1通讯时序(3次握手4次挥手)1.1标志位No.报文标识英文含义1SYNsynchronous建立连接2ACKacknowledgement确认3FINfinish结束4PSHpush传送5RSTreset重置6URGurgent紧急1.2流程图1.2.1三次握手SYN 1000(0) <...原创 2020-03-02 23:08:09 · 134 阅读 · 0 评论 -
linux网络编程--多并发服务器(多线程、多进程)
1多进程并发服务器1.1实现思路socketBind()Listen()while(1){cfd =Accept(lfd);pthread_create(&tid,NULL,ffn,NULL);}子程序void *tfn(void *arg){close(lfd);read(cfd);//操作write(cfd);}2多线程并发服务器1.1实现思路...原创 2020-03-02 23:07:19 · 272 阅读 · 0 评论 -
linux网络编程--多并发服务器(多路I/O--select)
1设计思路客户端和服务端建立连接后 ,产生cfd,然后将cfd交给select进行监听只有当客户端要进行读写等操作,select才会响应,让客户端和服务器进行数据传输select poll epoll 都是内核提供的2Select模式2.1函数原型fd_set:描述符集合(long类型数组)监听描述符事件,如果描述符集合中没有就绪,等待;反之,函数返回,把描述符集合清空,并...原创 2020-03-02 23:06:07 · 555 阅读 · 0 评论 -
linux网络编程--多并发服务器(多路I/O--epoll)
1操作函数1.1创建int epoll_create(int size)本质创建一个红黑树(是平衡2叉树中的一个特例)参数size 创建的红黑树的监听节点的数目返回值指向新创建的红黑树的根结的文件描述符epfd失败 - 1 errno1.2控制int epoll_ctl(int epfd, int op, int fd, struct epoll_even...原创 2020-03-02 23:05:36 · 670 阅读 · 0 评论 -
linux网络编程--多并发服务器(多路I/O--poll)
1poll1.1函数原型int poll(struct pollfd *fdarray, unsigned long nfds, int timeout)1 .2参数No.参数含义1fdarray监听的文件描述符struct pollfd数组指针2nfds监听数组的,世纪有效的监听个数3timeout等待时间。-1:阻塞等待;0不阻塞;>...原创 2020-03-02 23:05:07 · 201 阅读 · 0 评论 -
linux网络编程--socket编程(基本概念,转换操作,sockaddr)
1 套接字1.1 什么是socketsocket是一种特殊的文件描述符 可以使用linux文件IO操作函数来操作socketsocket是一个独立于具体协议的网络编程接口用来连接位于用一个主机或不同主机的进程,从而实现进程通信或网络通信: 网络通信本质也是不同主机进程之间通信,socket是位于应用层和传输层之间一个抽象层。他把TCP/IP复杂的操作抽象为几个简单的接口,供应用层调用...原创 2020-02-26 21:34:02 · 763 阅读 · 0 评论 -
linux网络编程--网络基础(协议,分层模型结构,协议格式 CS/BS优缺点)
1协议1.1概念协议:就是一组规则,是数据传输和数据的解释规则1.2 典型协议1.2.1传输层 常见协议有TCP/UDP协议特点数据传输方式类比面向连接数据流大巴车(人满发车,定点发车),打电话(确保信息准确送达)无连接数据报出租车(随到随走),发短信(不是关心对方马上收到)1.2.2应用层 常见协议有HTTP,FTP协议中文名称...原创 2020-02-26 21:32:47 · 652 阅读 · 0 评论 -
libevent网络库--bufferevent
1概念1.1原理bufferevent有两个缓冲区:也是队列实现只能读一次 先进先出读缓冲: 加入读缓冲有数据,会触发读缓冲对应的回调函数,在回调函数中不再使用read函数 只能使用bufferevent_read函数写缓冲bufferevent_write()向写缓冲写数据,这个写缓冲一旦有数据,就自动刷新–发送给对端,发送成功 write_cb()回被调用 —通知写数据完成。...原创 2020-03-22 21:45:16 · 264 阅读 · 0 评论 -
linux网络编程--libeventw网络库
1概念1.1什么是libevent开源的高性能的事件触发的网络库,内部使用select、poll、epoll等系统调用管理事件机制基于“事件”异步通信模型–>主要依赖于回调函数1.2优点开源精简跨平台轻量级:专注于网络通信2 libevent 框架创建 :event_base;struct event_base* pBase = event_base_ne...原创 2020-03-22 21:44:35 · 238 阅读 · 0 评论 -
linux网络编程--本地套接字
1本地套接字和网络套接字比较本地IPC ,pipe,fifommap,信号,本地套接字(domain)–C/S模型对比网络套接字:int socket(int domain, int type, int protocol)参数domain:从AF_INET改变为AF_UNIX/AF_LOCAL其他参数和网络套接字基本一样。int bind(int socket, co...原创 2020-03-22 21:43:19 · 236 阅读 · 0 评论 -
linux网络编程--UDP协议
1TCP通信和UDP通信各自的特点1.1TCP本质面向连接的,可靠数据包传输,对于不稳定的网络层,采取完全弥补的通信方式,丢包重传优点稳定:数据流量稳定 速度稳定 顺序(寻路的路由节点顺序)稳定缺点每次通信之前要建立连接 所以:1:传输速度慢2:效率低3: 开销大使用场景数据的完整型要求较高,不追求效率:大数据/文件传输1.2UDP本质无连接...原创 2020-03-22 21:42:52 · 99 阅读 · 0 评论 -
liunx网络编程-socket(函数)
1.1创建int socket(int domain, int type, int protocol)1.1.1参数No.参数含义int socket(int domain, int type, int protocol)1domain协议域AF_INET:IPv4;AF_INET6:IPv6;AF_LOCAL:Unix域2type类型SOCK_S...原创 2020-03-22 21:42:24 · 203 阅读 · 0 评论