![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络
文章平均质量分 63
dwx2046
这个作者很懒,什么都没留下…
展开
-
TCP的流量控制
TCP的流量控制1. 利用滑动窗口实现流量控制 如果发送方把数据发送得过快,接收方可能会来不及接收,这就会造成数据的丢失。所谓流量控制就是让发送方的发送速率不要太快,要让接收方来得及接收。 利用滑动窗口机制可以很方便地在TCP连接上实现对发送方的流量控制。 设A向B发送数据。在连接建立时,B告诉了A:“我的接收窗口是 rwnd = 400 ”(这里转载 2016-03-15 21:42:10 · 435 阅读 · 0 评论 -
S_ISREG S_ISDIR 等几个常见的宏
S_ISLNK(st_mode):是否是一个连接.S_ISREG(st_mode):是否是一个常规文件.S_ISDIR(st_mode):是否是一个目录S_ISCHR(st_mode):是否是一个字符设备.S_ISBLK(st_mode):是否是一个块设备S_ISFIFO(st_mode):是否 是一个FIFO文件.S_ISSOCK(st_mode):是否是一个SOCKET转载 2016-03-23 11:36:40 · 4188 阅读 · 0 评论 -
Socket描述符选项
Socket描述符选项[SOL_SOCKET]#include int setsockopt( int socket, int level, int option_name, const void *option_value, size_t option_len); 第一转载 2016-03-11 21:05:16 · 806 阅读 · 0 评论 -
TCP协议中的SO_LINGER选项
SO_LINGER选项用来设置延迟关闭的时间,等待套接字发送缓冲区中的数据发送完成。没有设置该选项时,在调用close()后,在发送完FIN后会立即进行一些清理工作并返回。如果设置了SO_LINGER选项,并且等待时间为正值,则在清理之前会等待一段时间。以调用close()主动关闭为例,在发送完FIN包后,会进入FIN_WAIT_1状态。如果没有延迟关闭(即设置SO_LINGER选项),在转载 2016-03-11 21:56:36 · 619 阅读 · 0 评论 -
tcp短连接TIME_WAIT问题解决方法大全(2)——SO_LINGER
转载--爱技术的华仔(http://blog.csdn.net/yunhua_lee)SO_LINGER是一个socket选项,通过setsockopt API进行设置,使用起来比较简单,但其实现机制比较复杂,且字面意思上比较难理解。解释最清楚的当属《Unix网络编程卷1》中的说明(7.5章节),这里简单摘录:SO_LINGER的值用如下数据结构表示:struct ling转载 2016-03-11 22:01:41 · 582 阅读 · 0 评论 -
FTP两种工作模式介绍
http://blog.chinaunix.net/uid-372384-id-2413918.htmlhttp://my.oschina.net/binny/blog/174691.主动FTP模式最初的FTP规范中使用的就是传统的主动模式的FTP。在这种模式下,客户端从一个临时端口(大于1024的端口号)连接到FTP服务器的命令控制端口(端口21),当客户端准备好传输数据时,原创 2016-04-04 20:54:01 · 30351 阅读 · 0 评论 -
TCP的拥塞控制
http://blog.csdn.net/sicofield/article/details/97083831.引言 计算机网络中的带宽、交换结点中的缓存和处理机等,都是网络的资源。在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会变坏。这种情况就叫做拥塞。 拥塞控制就是防止过多的数据注入网络中,这样可以使网络中的转载 2016-03-15 17:19:05 · 327 阅读 · 0 评论 -
学习Javascript闭包(Closure)
作者: 阮一峰日期: 2009年8月30日闭包(closure)是Javascript语言的一个难点,也是它的特色,很多高级应用都要依靠闭包实现。下面就是我的学习笔记,对于Javascript初学者应该是很有用的。一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。转载 2016-06-28 17:12:05 · 347 阅读 · 0 评论 -
linux系统端口占用和close-on-exec机制
一直以来,在处理linux服务器的过程中,经常会遇到一个问题,有时候kill掉进程之后,端口被占用,新的进程一直起不来,等待很久也不能启动新进程,总是提示端口被占用,只有重启机器才能恢复正常,这个简直是个灾难,查了一些资料,了解了如何查看端口占用情况和处理方法。1、使用netstat命令查看端口占用情况。 2、我们还需要知道是什么程序占用,加上-p参数原创 2016-07-30 12:00:04 · 1584 阅读 · 0 评论 -
TIME_WAIT状态与解决方法
执行主动关闭的那端经历了这个状态,并停留MSL(最长分节生命期)的2倍,即2MSL。TIME_WAIT存在的两个理由:1 可靠的实现TCP全双工连接的终止2 允许老的重复的分节在网络上的消逝第一个:如果客户端不维持TIME_WAIT状态,那么将响应给服务端一个RST,该分节被服务器解释成一个错误。如果TCP打算执行所有必要的工作以彻底终止某个连接上两个方向的数据流,那么必须正确的处原创 2016-08-21 16:24:25 · 11745 阅读 · 0 评论 -
Http响应码及其含义
100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部分。(HTTP 1.1新) 101 Switching Protocols 服务器将遵从客户的请求转换到另外一种协议(HTTP 1.1新) 200 OK 一切正常,对GET和POST请求的应答文档跟在后面。201 Created 服务器已经创建了文档,Location头给出了它的URL原创 2016-04-05 13:10:46 · 671 阅读 · 0 评论 -
struct sockaddr与struct sockaddr_in ,struct sockaddr_un的区别和联系
在linux环境下,结构体struct sockaddr在/usr/include/linux/socket.h中定义,具体如下:typedef unsigned short sa_family_t;struct sockaddr { sa_family_t sa_family; /* address family, AF_xxx */转载 2016-03-11 16:21:27 · 801 阅读 · 0 评论 -
htons(), ntohl(), ntohs(),htons()
htonl就是把本机字节顺序转化为网络字节顺序所谓网络字节顺序(大尾顺序)就是指一个数在内存中存储的时候“高对低,低对高”(即一个数的高位字节存放于低地址单元,低位字节存放在高地址单元中)。但是计算机的内存存储数据时有可能是大尾顺序或者小尾顺序。先举个例子:int a = 0x403214;int b = htonl(a);我在VC++6.0调试这段代码,发转载 2016-03-11 14:47:04 · 459 阅读 · 0 评论 -
数据报转发子模块对数据报的操作
原创 2016-03-03 22:39:34 · 327 阅读 · 0 评论 -
https和http的区别详解
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它使转载 2016-03-16 21:48:05 · 492 阅读 · 0 评论 -
DNS使用的是TCP协议还是UDP协议
原文:http://benbenxiongyuan.iteye.com/blog/1088085DNS同时占用UDP和TCP端口53是公认的,这种单个应用协议同时使用两种传输协议的情况在TCP/IP栈也算是个另类。但很少有人知道DNS分别在什么情况下使用这两种协议。 先简单介绍下TCP与UDP。 TCP是一种面向连接的协议,提供可靠的数据传输,一般服务质量要求比较高的情转载 2016-03-16 22:11:53 · 21671 阅读 · 2 评论 -
TCP状态转移
原创 2016-03-04 16:44:26 · 283 阅读 · 0 评论 -
TCP/IP数据报格式分析
IP 数据包格式(1)版本 占4位,指IP协议的版本。通信双方使用的IP协议版本必须一致。目前广泛使用的IP协议版本号为4(即IPv4)。关于IPv6,目前还处于草案阶段。(2)首部长度 占4位,可表示的最大十进制数值是15。请注意,这个字段所表示数的单位是32位字长(1个32位字长是4字节),因此,当IP的首部长度为1111时(即十进制的15),首部长度就达到60字节。当IP转载 2016-03-07 22:01:51 · 679 阅读 · 0 评论 -
inet_ntoa函数陷阱
今天编程时遇到一个很诡异的问题,是关于inet_ntoa函数的。先看一个测试程序#include stdio.h>#include sys/socket.h>#include netinet/in.h>#include arpa/inet.h>#include string.h>int main(int argc, char* argv[])转载 2016-03-07 22:33:32 · 402 阅读 · 0 评论 -
PF_INET 和 AF_INET的区别
AF 表示ADDRESS FAMILY 地址族 PF 表示PROTOCL FAMILY 协议族Winsock2.h中#define AF_INET 0#define PF_INET AF_INET 所以在windows中AF_INET与PF_INET完全一样 而在Unix/Linux系统中,在不同的版本中这两者有微小差别对于BSD,是AF转载 2016-03-10 23:20:45 · 546 阅读 · 0 评论 -
linux里的backlog详解
listen函数是网络编程一个基本的函数,而且它的backlog参数却是和TCP协议息息相关的。我们来看一下一个backlog参数到底有多少秘密。问题我们在linux上服务器起了一个serversocket,并且设置了backlog为2,并没有让serversock.accept() 在客户端上,我们一个一个的启动了连接socket, 当连接数目超过3的时候转载 2016-03-11 10:27:48 · 904 阅读 · 0 评论 -
inet_pton, inet_ntop
Linux下这2个IP地址转换函数,可以在将IP地址在“点分十进制”和“整数”之间转换而且,inet_pton和inet_ntop这2个函数能够处理ipv4和ipv6。算是比较新的函数了。inet_pton函数原型如下[将"点分十进制" -> "整数"]#include #include #include int inet_pton(int af, const char转载 2016-03-11 14:28:04 · 486 阅读 · 0 评论 -
Ruby on Rails安装
环境:ubuntu首先安装rubysudo apt install ruby查看ruby版本ruby -v安装rails配置gem源由于默认的gem源使用的是国外的源,在国内速度慢而且时常无法访问,所以先配置gem源,之前淘宝负责的源已经有ruby中国负责gem sources #显示现在的gem源有哪些gem sources -r https://rubygems.org/ #之前淘宝的ge原创 2016-12-29 14:43:29 · 2063 阅读 · 2 评论