
网络编程
文章平均质量分 73
L未若
难得糊涂!!!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
window下的netstat
Netstat是控制台命令,是一个监控TCP/IP网络的工具Netstat命令用于显示各种网络相关信息,如网络连接,路由表,接口状态也是用于显示ip,tcp,udp,cmp协议相关的统计数据,一般用于检验本机各端口网络连接情况原创 2016-01-28 13:34:49 · 1691 阅读 · 0 评论 -
bind:address already in use的深刻教训以及解决办法
今天在linux下,编写了一个简单的回射客户/服务器(就是客户机从控制台标准输入并发送数据,服务端接受数据,但是不对数据进行处理,然后将数据返回,交由客户机标准输出),然后遇到了一些问题,郁闷了好长时间,然后就想着将这些东西写下来,跟大家分享分享1, 客户端和服务端到底那个是先退出的??这个有什么区别吗??(死循环)2, 为什么有的时候bind:address already in use一直存在???不是说好的2-4分钟吗,,(ctrl + z 和 ctrl + c)3, 当bind:add原创 2016-02-26 09:24:55 · 162236 阅读 · 5 评论 -
面试之经典问题-发送/接受窗口与缓存的关系
1,tcp传输报文段,发送窗口与缓存的关系???2,普通意义上的,TCP传输报文段的时候会产生稍带确认吗???3,接受方收到字节确认不是按顺序的,那么对这些东西已经收到的确认号如何处理???对于网络通信,tcp发送的都是一些报文段,里面存在一些发送/接受窗口原创 2016-04-19 21:57:32 · 3729 阅读 · 0 评论 -
超时重传的时间计算
我们都知道,TCP发送方在规定时间内没有收到确认就要重传已发送的报文段(里面有一个超时计数器),这个逻辑很简单,但是这个超时计数器的值每次都是不一样的,也就是说:重传时间的选择是不一样的,它是如何确定的呢???TCP下层是互联网环境,发送的报文段可能只经过一个高速率的局域网,也可能经过多个低速率的网络,并且每个IP数据报所选择的路由还可能不同。如果把超时重传时间设置太短,就会引起很多报原创 2016-04-24 08:36:18 · 13001 阅读 · 0 评论 -
利用滑动窗口实现流量的控制
一般来说:我们总是希望数据传输的更快一些。但如果发送方把数据发送的过快,接收方就可能来不及接收,这样就会造成数据的丢失。所谓的流量控制(flow control)就是让发送方的发送速率不要太快,要让接受方来得及接收。对ACK的再认识:ACK表示首部中的确认位ACK,而小写的ack表示确认字段的值;在ACK为1的情况下:小写的ack才会起作用TCP规定:在原创 2016-04-24 11:00:05 · 7852 阅读 · 0 评论 -
close和shutdown、套接字超时、timeout
close函数:终止数据传送的两个方向。。。。1,客户端A调用close函数,也就是说:socket(A)不能向socket(B)发送数据,也不能接收从B发送来的据。。。 当客户端A调用了close函数时(一般情况下:会发送一个FIN分节),对端read返回为0,但是这并不意味着对端 socket(B)不能向A发送数据,,,这也是允许的,,,(因为B收到FIN只原创 2016-07-23 14:35:15 · 2090 阅读 · 0 评论 -
tcp粘包问题(经典分析)
这两天看csdn有一些关于socket粘包,socket缓冲区设置的问题,发现自己不是很清楚,所以查资料了解记录一下: 一 .两个简单概念长连接与短连接:1.长连接 Client方与Server方先建立通讯连接,连接建立后不断开, 然后再进行报文发送和接收。2.短连接 Client方与Server每进行一次报文收发交易时才进行通讯连接,交易完毕后立即断开连接。此转载 2016-03-01 08:16:23 · 18089 阅读 · 3 评论 -
epoll与selectpoll的区别!!!
select,poll都可以来实现并发(select限制)1,一个进程所能打开的最大文件描述符的个数是有限的2,select中集合的限制(fd_set)FD_SETSIZEpoll:只有最大文件描述符的个数限制,而没有FD_SETSIZE限制而我们所能打开的最大文件描述符的个数,我们可以通过一个命令来修改:ulimit -n number但是这个number原创 2016-07-29 12:36:40 · 773 阅读 · 1 评论 -
UDP浅析!!!(客户-服务通信源码)
UDP协议的特点:1,无连接,也就是说:UDP内部并没有维护端到端的状态,这跟TCP是不一样的。UDP不需要三次握手,2,基于消息的数据传输服务,传输的是数据报,跟TCP基于字节流是不一样的,不会出现所谓的粘包问题,就是这些 数据报是有边界的,而TCP是没有边界的3,不可靠,表现在数据报可能会丢失,也可能会重复,也可能会乱序,缺乏流量控制所以说:一般情况下,U原创 2016-07-29 17:15:43 · 5115 阅读 · 1 评论 -
socket的accept函数解析以及服务器和多个客户端的端口问题
今天与同学争执一个话题:由于socket的accept函数在有客户端连接的时候产生了新的socket用于服务该客户端,那么,这个新的socket到底有没有占用一个新的端口? 讨论完后,才发现,自己虽然熟悉socket的编程套路,但是却并不是那么清楚socket的原理,今天就趁这个机会,把有关socket编程的几个疑问给搞清楚吧。 先给出一个典型的TCP/IP通信示意图。转载 2016-02-25 09:40:35 · 13061 阅读 · 1 评论 -
TCP的状态转化过程(11中状态)以及TIME_WAIT状态
TCP中的三次握手,四次挥手是我们所熟知的,可是,我们熟悉里面的各种状态吗???(SYN_SENT, ESTABLISHED, CLOSE_WAIT.............),试问一句,我们了解里面的状态转化吗???1,大家先看一个简单的通信图原创 2016-07-04 20:53:10 · 6584 阅读 · 1 评论 -
POSIX线程,线程的客户/服务通信(pthread_join,pthread_exit,pthread_detach,pthread_self)
我们所熟知的线程函数:1,pthread_create,pthread_join,pthread_exit,pthread_detach,pthread_self2,如何避免产生僵尸线程(进程)3,多线程引发的客户/服务通信原创 2016-08-05 19:42:38 · 909 阅读 · 0 评论 -
TCP_NODELAY,Nagle算法
什么是Nagle算法???使用该算法能够获得那些数据通信特性???或者说,有什么优势呢???Nagle算法:为防止因数据包过多而发生网络过载,Nagle算法在1984年诞生了。应用于TCP层,非常简单。其使用不使用导致如下的差异: 如上图:展示了通过Nagle算法发送字符串“Nagle”和未使用Nagle算法的差别。 可以得到如下结论: 只有收到前一数原创 2016-08-29 16:05:39 · 1157 阅读 · 0 评论 -
TCP的拥塞控制
研究TCP的拥塞机制,不仅仅是想了解TCP如何的精巧,更多的是领悟其设计思想,即在一般情况下,我们该怎样处理问题。 一.拥塞的发生与其不可避免 拥塞发生的主要原因在于网络能够提供的资源不足以满足用户的需求,这些资源包括缓存空间、链路带宽容量和中间节点的处理能力。由于互联网的设计机制导致其缺乏“接纳控制”能力,因此在网络资源不足时不能限制用户数量,而只能靠降低服务质量来继续为用户服务,也原创 2016-04-20 11:15:28 · 1540 阅读 · 0 评论 -
TCP协议详解!!!
TCP和UDP是TCP/IP中传输层中两个最具代表性的协议,TCP提供可靠的通信传输,UDP则是常被应用于广播和细节控制(相比而言,不太可靠)可是,TCP的可靠性表现在哪里??它的报文格式又是咋样的呢??TCP原创 2016-02-20 18:00:14 · 3528 阅读 · 1 评论 -
有关网络编程的一些面试
1,首先说明socket是什么?? 我们知道:信息的交互需要涉及到tcp的四层模型 从上图可以看到:底层的东西已经被内核实现了,即我们通常意义上的内核协议栈(传输层,网络层,链路层),最上面的Application(应用层)是我们用户所要实现的,它是属于用户进程的一部分,工作在用户空间,那么用户空间的程序要想访问内核,使用内核的服务,就需要一个接口,去原创 2016-05-25 02:43:39 · 5416 阅读 · 0 评论 -
python下的tcp,udp服务器端,客户机端
1、TCP连接的建立方法 客户端在建立一个TCP连接时一般需要两步,而服务器的这个过程需要四步,具体见下面的比较。 步骤TCP客户端TCP服务器第一步建立socket对象 建立socket对象第二步调用connect()建立一个和服务器的连接设置socket选转载 2016-01-28 16:38:09 · 1002 阅读 · 0 评论 -
TCP,IP,端口,地址(初步理解)
1,关于tcp/ip(Tanasmission Control Protocol/Internet Protocol) 首先我们必须清楚tcp/ip是一个协议族(是一些协议的合集)这里tcp/ip相当于一辆车在高速公路上面跑,(tcp此刻就是相当于车,而ip就是高速公路了),来回传送信息原创 2016-01-28 10:07:40 · 11588 阅读 · 0 评论 -
如何查看端口是否被占用
在学习tcp/ip的时候,经常遇到一些关于跟端口有关的东西,在写网络上的一些东西,有时用的一些端口被提示:端口已被占用,啊啊啊,挺郁闷的然后就想着将它搞明白,1.它到底是被那些程序占用的啊??2.到底如何查看那些有关端口的东西呢??一:window下的基本上都是一样的,不管win8,win10,win7,等等,都有dos 1.首先进入自己的dos界面,原创 2016-01-29 18:02:12 · 32421 阅读 · 0 评论 -
Socket send函数和recv函数详解
1.send 函数int send( SOCKET s, const char FAR *buf, int len, int flags ); 不论是客户还是服务器应用程序都用send函数来向TCP连接的另一端发送数据。客户程序一般用send函数向服务器发送请求,而服务器则通常用send函数来向客户程序发送应答。 该函数的第一个参数指定发送端套接转载 2016-01-29 11:58:38 · 664 阅读 · 0 评论 -
域名和ip地址的区别
我们也知道每一台计算机都有一个唯一ip地址,特别难记,所以出现了今天的DNS(域名)当我们的计算机想要和一个远程机器连接时,我们可以申请连接该机器ip地址下的DNS,例如:www.baidu.com。连接的时候,DNS会提供一个ip地址,供服务器去找寻所以,当我们在网址中输入:www.baidu.com,会获取到百度ip,并跳转页面 1.比如说:我们现在在"陕西原创 2016-01-28 10:12:57 · 27967 阅读 · 6 评论 -
ARP协议-地址解析的过程
关于ARP协议,大部分人只是简单地知道:这个协议是通过IP地址来获取MAC地址的但是,这个真的有这么简单吗???它是如何获取MAC地址的呢???(ARP地址解析协议, RARP反向地址解析协议),我们习惯上把它们认为是链路层的协议,实际上,从分层的角度来看,更准确的说是,(应该是一种介于网络IP层与链路层之间的一种协议)我们知道在ISO/OSI模型中,数据在传输原创 2016-02-19 21:35:20 · 7413 阅读 · 0 评论 -
TCP协议中为什么三次握手,四次挥手(详解)!!!
建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向Server段发生ACK报文,并分配资源,这样TCP连接就建立了。那如何断开连接呢?简单的过程如下:转载 2016-03-18 15:18:06 · 4312 阅读 · 0 评论 -
以太网帧格式
在众多的数据链路中,使用最为广泛的是以太网,易于实现NIC(网卡)及驱动程序网络层的协议(ICMP, IP, IGMP)然而对于(ARP地址解析协议, RARP反向地址解析协议),我们习惯上把它们认为是链路层的协议,实际上,从分层的角度来看,更准确的说是,(应该是一种介于网络IP层与链路层之间的一种协议,所以不是很完美)原创 2016-02-19 18:02:55 · 5320 阅读 · 1 评论 -
窗口滑动协议的简单理解
(哈哈,写的真心不错)本文转载自:微信ID:kaidiancs 微信公共号:开点工作室里面有好多技术类的文章,大大多多关注百度2015笔试中有这样一道题目:数据链路层采用后退N帧(GBN)协议,发送方已经发送了编号为0~7的帧。当计时器超时时,若发送方只收到0、2、3号帧的确认,则发送方需要重发的帧数是( )。A.4 B.2C.3D.5转载 2016-03-13 19:41:04 · 8385 阅读 · 8 评论 -
网络字节序和主机字节序详解!!!
我们都知道,如今的通讯方式已经趋向与多样化,异构通信(计算机软件(操作系统) + 计算机硬件(内核架构,ARM,x86)不同)也已经很普遍了,如,手机和电脑中的qq进行通信,,,同时,在计算机设计之初,对内存中数据的处理也有不同的方式,(低位数据存储在低位地址处或者高位数据存储在低位地址处),然而,在通信的过程中(ISO/OSI模型和TCP/IP四层模型中),数据被一步步封装(然原创 2016-02-24 09:52:30 · 36606 阅读 · 8 评论 -
127.0.0.1和localhost和本机IP三者的区别!!!
1,什么是环回地址??与127.0.0.1的区别呢??环回地址是主机用于向自身发送通信的一个特殊地址(也就是一个特殊的目的地址)。可以这么说:同一台主机上的两项服务若使用环回地址而非分配的主机地址,就可以绕开TCP/IP协议栈的下层。(也就是说:不用再通过什么链路层,物理原创 2016-04-30 17:28:18 · 133715 阅读 · 6 评论 -
分类的IP地址
1,分类的IP地址,就是将IP地址划分为若干个固定类,每一类地址都由两个 固定的字段组成: 网络号(net-id),它标志着主机(或路由器)所连接到的网络。一个 网络在整个因特网内必须是唯一的。 主机号(host-id),它标志着该主机(或路由器)。一个主机号在它 前面的网络号所指明的网络范围内必须是唯一的。 所以:一个IP地址在整个因特网范围内是唯一原创 2016-09-17 00:25:20 · 1449 阅读 · 0 评论