计算机网络
文章平均质量分 70
Y~哈哈哈
这个作者很懒,什么都没留下…
展开
-
I/O复用——select/poll/epoll的比较
select:select本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1、 单个进程可监视的fd数量被限制,即能监听端口的大小有限。 一般来说这个数目和系统内存关系很大,具体数目可以cat /proc/sys/fs/file-max察看。32位机默认是1024个。64位机默认是2048.2、 对socket进行扫描时是线性扫描,即...原创 2019-02-28 23:02:36 · 168 阅读 · 0 评论 -
IP协议详解
一、IP服务的特点IP协议是TCP/IP协议族的动力,它为上层协议提供了无状态、无连接、不可靠的服务1、无状态是指IP通信双方不同步传输数据的状态信息,因此所有IP数据报的发送、传输和接收都是相互独立、没有上下文关系的。该服务最大的缺点:无法处理乱序和重复的IP数据报。比如发送端发送出的第N个IP数据报可能比第N+1个IP数据报后到达接收端,而同一个IP数据报也可能经过不同的...原创 2019-05-01 12:37:42 · 465 阅读 · 0 评论 -
HTTP协议
一、HTTP协议的报文结构 (1)开始行:用于区分是请求报文还是响应报文,在请求报文中的开始行叫做请求行,而在响应报文中的开始行叫做状态行(2)首部行:用来说明浏览器、服务器或报文主体的一些信息。首部行可以有好几行,也可以不使用(3)实体主题:在请求报文中一般不用这个字段,而在响应报文中也可能没有这个字段...原创 2019-04-22 09:51:36 · 1153 阅读 · 4 评论 -
HTTP的长连接和短连接
1. HTTP协议与TCP/IP协议的关系HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。 IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠地传递数据包,使得网络上接收端收到发送端所发出的所有包,并且顺序与发送顺序一致。TCP协议是可靠的、面向连接的。2. 如何理解HTTP协议是无状态的...原创 2019-03-17 16:55:18 · 182 阅读 · 0 评论 -
三种模型结构——OSI、TCP/IP、五层协议的体系结构
三种模型结构:在传输层的数据叫段, 网络层叫包,数据链路层叫帧,物理层叫比特流,这样的叫法叫PDU(协议数据单元原创 2019-03-30 18:20:01 · 375 阅读 · 0 评论 -
FTP协议
FTP 概述FTP工作在TCP/IP模型的应用层,基于的传输协议是TCP,FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。文件传输协议(FTP)作为网络共享文件的传输协议,在网络应用软件中具有广泛的应用。FTP的目标是提高文件的共享性和可靠高效地传送数据。在传输文件时,FTP 客户端程序先与服务器建立连接,然后向服务器发送命令。服务器收到命令后给予响应...原创 2019-03-15 14:56:31 · 1408 阅读 · 0 评论 -
流量控制 滑动窗口
1. 流量控制 我们都知道当网络上数据流量超过网络硬件负荷时就会出现网络拥塞,就是我们平常遇到的网络缓慢的现象。对应影响网络速度的原因主要有网络传输设备的性能和传输的数据多少,网络传输设备包含发送接收主机、路由器、传输线路等。为了解决这个问题,TCP引入了流量控制,顾名思义,就是采用某种方法,控制收发端传输数据的速度,从而维持网络数据传输的平衡。针对收发主机的处理速度,TCP...原创 2019-03-30 18:23:44 · 588 阅读 · 0 评论 -
基本UDP套接口编程
UDP客户—服务器程序函数调用,客户不与服务器建立连接,它只管用函数sendto给服务器发送数据报,该函数要求目的地址(服务器)作为其参数。同样的,服务器不从客户接收连接,它只管调用函数recvfrom,等待来自某客户的数据到达,与数据报一起,recvfrom返回客户的协议地址,所以服务器可以发送响应给正确的客户。在连接中用到的函数:头文件:<sys/socket.h>re...原创 2018-10-18 09:11:04 · 1572 阅读 · 0 评论 -
TCP连接的建立和关闭状态转移图-
TCP连接的任意一端在任一时刻都处于某种状态,当前的状态可以通过netstat命令查看,这里我们要讨论的是TCP连接从建立到关闭整个过程中通信两端状态的变化图中粗虚线表示典型的服务器端连接的状态转移;粗实线表示典型的客户端连接的状态转移。请注意,CLOSED是一个假想的起始点,并不是一个实际的...原创 2018-10-17 16:48:28 · 1066 阅读 · 0 评论 -
TCP 多线程——一个服务器被多个客户端连接
为了使一个服务器端能被多个客户端连接我们采用线程的方法,服务器创建一个线程之后,打开的套接字就被线程所继承,线程可以和连接的客户进行通信,而主线程(主服务器)可以继续接受以后的客户连接,即Accept之后产生一个c,然后将c传递给新创建线程,让线程去接收数据和回复确认信息(和客户端沟通),然后主线程中继续处理其他客户端发来的请求,然后再继续创建线程如此循环。可以根据下面的图进行理解服...原创 2018-10-14 14:45:09 · 9547 阅读 · 3 评论 -
Send和Recv两个调用的底层原理以及UDP中recvfrom和sendto接收和发送数据的方式
send和recv是利用建立好的TCP连接进行数据据的发送和接收的系统调用。send负责将要发送的数据写入对应套接字文件描述符的发送缓冲区中,send成功并不代表数据就成功的发送到了对端,其实send的返回值是实际写入发送缓冲区的字节数,什么时候发送给对端由底层协议完成。如果缓冲区满则有可能阻塞send.send在内核中最终通过_sock_sendmsg,将数据写入相应的缓冲区中。recv是...原创 2019-05-10 20:36:35 · 1704 阅读 · 0 评论