
网络协议
wfziyou
这个作者很懒,什么都没留下…
展开
-
从缓冲上看阻塞与非阻塞socket在发送接收上的区别
最近在网络上看到一些帖子以及回复,同时又搜索了一些网络上关于阻塞非阻塞区别的描述,发现很多人在描述两者的发送接收时操作返回以及缓冲区处理的区别时有不同程度的误解。所以我想写一篇文章来纠正错误,并作为记录方便查阅,如有转载,注明作者(jwybobo2007)以及出处即可。 首先socket在默认情况下是阻塞状态的(未指异步操作以及其它一些特殊用途下,直接默认为非阻塞),这就使得发送以及接收操作转载 2013-06-18 19:56:58 · 429 阅读 · 0 评论 -
HTTP协议
转自:http://blog.youkuaiyun.com/gueter/archive/2007/03/08/1524447.aspx http(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议。一、HTTP协议详解之URL篇 http://host[":"port][abs_path] host表示合法的Internet主机域名或者IP地址;port指转载 2013-12-30 11:37:33 · 436 阅读 · 0 评论 -
socket断开连接
socket断开连接///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 自动检测SOCKET链接断开1.c/转载 2014-02-07 11:06:41 · 2791 阅读 · 0 评论 -
Linux中TCP连接过程状态简介
转自:http://www.cnblogs.com/ggzss/archive/2011/09/25/2190404.htmlLinux中TCP连接过程状态简介一、Linux服务器上11种网络连接状态: 图:TCP的状态机通常情况下,一个正常的TCP连接,都会有三个阶段:1、TCP三次握手; 2、数据传送; 3、TCP四次挥手注:以下说转载 2014-02-07 10:32:07 · 490 阅读 · 0 评论 -
socket编程之select()
转自:http://www.cnblogs.com/ggzss/archive/2011/08/25/2153746.htmlsocket编程之select() Select在Socket编程中还是比较重要的,它能够监视我们需要监视的文件描述符的变化情况——读写或是异常。 Select的函数格式(Unix系统下的伯克利socket编程,和windows下的略有区别转载 2014-02-07 10:33:32 · 524 阅读 · 0 评论 -
Socket function
字节排序htonsntohs名字与地址转换inet_ptoninet_ntopgethostbynamegethostbyaddrgetservbynamegetservbyportgetaddrinfogai_strerrorfreeaddrinfogetnameinf原创 2014-02-07 17:10:07 · 513 阅读 · 0 评论 -
Socket
阻塞套接字分类某个进程对一个阻塞的套接字调用输入函数(read, readv, recv, recvfrom, recvmsg)时,而且该套接字的接收缓冲区没有数据可读。输出操作时(write,writev,send,sendto,sendmsg),对于一个TCP套接字,内核讲从应用进程的缓冲区到发送缓冲区复制数据,如果发送缓冲区没有空间,对于阻塞的套接原创 2014-02-07 17:28:58 · 593 阅读 · 0 评论 -
select,poll,epoll,iocp
select,poll,epoll,iocp在Linux下设计并发网络程序,向来不缺少方法,比如典型的Apache模型(Process Per Connection,简称PPC),TPC(Thread PerConnection)模型,以及select模型和poll模型,那为何还要再引入Epoll这个东东呢?那还是有得说说的…2. 常用模型的缺点如果不摆出来其他转载 2014-02-22 10:51:36 · 669 阅读 · 0 评论 -
RTSP
关于 RTSP.RTSP协议是一个非常类似HTTP协议的流控制协议。它们都使用纯文本来发送信息,而且rtsp协议的语法也和HTTP类似。Rtsp一开始这样设计,也是为了能够兼容使用以前写的HTTP协议分析代码。这是个好消息。它们主要的区别是HTTP协议是没有状态的,http协议在发送一个命令后,连接会断开,而且命令之间没有依赖性。不同的是RTSP的命令需要知道现在正处于一个转载 2014-02-18 09:32:26 · 585 阅读 · 0 评论 -
RTMP
RTMP协议研究1协议研究概述 协议设计和分析一直都是在工作遇到,正好在这里总结一下,说到协议,在这个网络的时代,没有人可以离开它了。他存在我们生活中的任何角落,只不过我们平时,并没有注意到它的存在,可以这么说如果没有协议,我们生活和日常的工作生产都不能进行。如果仔细想想你生活中用到的所有东西,协议已经包含其中。那到底什么是协议呢?说的简单一点就是双方达成的共识,以便更好的交流转载 2014-02-18 09:58:26 · 904 阅读 · 0 评论 -
网络
Mac地址分为三类:广播地址、组播地址、单播地址。Mac地址的格式:FF:FF:FF:FF:FF:FF。前24为地址是设备制造厂商的编号,由IEEE(电气与电子工程师协会)分配,后24位是设备厂商为网卡制定的唯一编号。int socket (int domain, int type, int protocol); 1 参数protocol用来指明所要接收的协议包,如果是象IPPROT转载 2013-12-30 10:34:20 · 483 阅读 · 0 评论 -
Socket的Send,Recv的长度问题
Socket的Send,Recv的长度问题【转】 一个包没有固定长度,以太网限制在46-1500字节,1500就是以太网的MTU,超过这个量,TCP会为IP数据报设置偏移量进行分片传输,现在一般可允许应用层设置8k(NTFS系统)的缓冲区,8k的数据由底层分片,而应用层看来只是一次发送。 windows的缓冲区经验值是4k转载 2013-07-05 16:30:25 · 859 阅读 · 0 评论 -
TCP滑动窗口和socket缓冲区之间的关系(记录)
一、TCP的滑动窗口大小实际上就是socket的接收缓冲区大小的字节数二、对于server端的socket一定要在listen之间设置缓冲区大小,因为,accept时新产生的socket会继承监听socket的缓冲区大小。对于client端的socket一定要在connet之前设置缓冲区大小,因为connet时需要进行三次握手过程,会通知对方自己的窗口大小。在connet之后再设置缓冲区,已经转载 2013-06-18 19:59:57 · 535 阅读 · 0 评论 -
TCP滑动窗口和SO_RCVBUF之间的实际关系
上次转载了一篇文章http://blog.youkuaiyun.com/jwybobo2007/archive/2010/12/30/6107419.aspx, 上面提到了TCP窗口大小与SO_RCVBUF选项之间的关系.但其实这篇文章描述的是有问题的. 在以Unix为核心的一些操作系统中(不一定都是),SO_RCVBUF选项确实决定了TCP窗口的大小.你设置为多少窗口就为多少.但在Windows转载 2013-06-18 20:01:16 · 837 阅读 · 0 评论 -
TCP 滑动窗口协议
什么是滑动窗口协议? 一图胜千言,看下面的图。简单解释下,发送和接受方都会维护一个数据帧的序列,这个序列被称作窗口。发送方的窗口大小由接受方确定,目的在于控制发送速度,以免接受方的缓存不够大,而导致溢出,同时控制流量也可以避免网络拥塞。下面图中的4,5,6号数据帧已经被发送出去,但是未收到关联的ACK,7,8,9帧则是等待发送。可以看出发送端的窗口大小为6,这是由接受端告知的(事实上必转载 2013-06-18 20:03:37 · 486 阅读 · 0 评论 -
socket选项自带的TCP异常断开检测
TCP异常断开是指在突然断电,直接拔网线等等情况下,如果通信双方没有进行数据发送通信等处理的时候,无法获知连接已经断开的情况. 在通常的情况下,为了使得socket通信不受操作系统的限制,需要自己在应用层实现心跳包机制,来检查异常断开的情况,一般的方式就是服务器在一段时间没有收到客户端数据包时,定时发包,然后客户端回应,如果已经出现异常断开则服务器接收会返回错误,而客户端在指定时间内没有收到转载 2013-06-18 19:58:19 · 1065 阅读 · 0 评论 -
Socket/TCP粘包、多包和少包, 断包 .
http://blog.youkuaiyun.com/delez/article/details/7342341为什么TCP 会粘包 前几天,调试mina的TCP通信, 第一个协议包解析正常,第二个数据包不完整。为什么会这样吗,我们用mina这样通信框架,还会出现这种问题? 带者问题,我们先分析一下问题。 提到通信, 我们面临都通信协议,数据协议的选择。 通信协议我们可选择TCP/UDP:转载 2013-06-20 13:05:20 · 545 阅读 · 0 评论 -
原始套接字SOCK_RAW
实际上,我们常用的网络编程都是在应用层的报文的收发操作,也就是大多数程序员接触到的流式套接字(SOCK_STREAM)和数据包式套接字(SOCK_DGRAM)。而这些数据包都是由系统提供的协议栈实现,用户只需要填充应用层报文即可,由系统完成底层报文头的填充并发送。然而在某些情况下需要执行更底层的操作,比如修改报文头、避开系统协议栈等。这个时候就需要使用其他的方式来实现。 一 原始套转载 2013-06-23 11:43:58 · 519 阅读 · 0 评论 -
端口详解|代码端口|端口的作用
端口详解|代码端口|端口的作用计算机"端口"是英文port的译义,可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB端口、串行端口等。软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。 在网络技术中,端口(Port)有好几种意思。集线器、交换机转载 2013-06-23 23:16:59 · 1271 阅读 · 0 评论 -
端口与进程
端口与进程******************** windows 篇 **********************一.查看windows系统端口号:netstat -abnov1)windows查看3030端口号被占用的进程第一步:netstat -aon|findstr 3030结果:转载 2013-06-25 15:12:35 · 476 阅读 · 0 评论 -
关于socket阻塞与非阻塞情况下的recv、send、read、write返回值
1、阻塞模式与非阻塞模式下recv的返回值各代表什么意思?有没有 区别?(就我目前了解阻塞与非阻塞recv返回值没有区分,都是 0接收到数据大小,特别:返回 值 2、阻塞模式与非阻塞模式下write的返回值各代表什么意思? 有没有区别?阻塞与非阻塞write返回值没有区分,都是 0发送数据大小,特别:返回值 3、阻塞模式下read返回 值 非阻塞模式下read返回值转载 2013-07-02 13:42:08 · 692 阅读 · 0 评论 -
rtp
RTP协议1 RTP报文格式2 基于RTP的带宽控制方法 1. 接收端的控制策略 2. 发送端的控制策略 RTP(Real-time Transport Protocol)是由IETF开发的实时传输协议,可以在面向连接或无连接的下层协议上工作,通常和UDP协议一起使用。RTP的工作机理与RSVP不同,主要实现一种端到端的多转载 2014-03-03 19:57:18 · 1188 阅读 · 0 评论