网络专栏
文章平均质量分 73
敬畏技术
但非技术至上
展开
-
TCP 的那些事儿(上)
TCP 的那些事儿(上)2014年5月28日陈皓发表评论阅读评论 83,467 人阅读 TCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你也可转载 2014-11-05 19:47:12 · 331 阅读 · 0 评论 -
json
从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一种类型是标量(scalar),也就是一个单独的字符串(string)或数字(numbers),比如"北京"这个单独的词。 第二种类型是序列(sequence),也就是若干个相关的数据按照一定顺序并列在一起,又叫做数组(array)或列表(List),比如"北京,上海"。 第三种类型是映射(m转载 2015-02-10 09:05:06 · 676 阅读 · 0 评论 -
因特网的路由选择协议
理想的路由算法算法必须是正确的和完整的。算法在计算上应简单。算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。算法应具有稳定性。算法应是公平的。算法应是最佳的。注:关于“最佳路由”:不存在一种绝对的最佳路由算法。所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。 实际的路由选择算法,应尽可能接近于理想的算法。路由选择是个非常复杂的问题原创 2015-06-23 09:30:46 · 8140 阅读 · 0 评论 -
HTTP幂等
幂等函数,或幂等方法,是指可以使用相同参数重复执行,并能获得相同结果的函数。这些函数不会影响系统状态,也不用担心重复执行会对系统造成改变。一 个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。幂等操作对于代理和缓存来说具有“友好性”,因为幂等操作的额外执行不会对二者产 生危害性后果(除了带宽浪费)。 幂等性是系统的接口对外一种承诺(而不是实现), 承诺只要调用接口成功, 外部原创 2015-06-05 19:09:40 · 562 阅读 · 0 评论 -
TCP连接的建立与释放
TCP协议概述及特点 TCP(TransmissionControl Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC793定义,不提供广播或多播服务。它的主要特点为:TCP是面向连接的运输层协议。每一条TCP连接只能有两个端点(endpoint),每一条TCP连接只能是点对点的(一对一)。TCP提供可靠交付原创 2015-06-13 14:38:42 · 1323 阅读 · 0 评论 -
TCP 的有限状态机
TCP协议的操作可以使用一个具有11种状态的有限状态机(FiniteState Machine)来表示,图1描述了TCP的有限状态机,图中的圆角矩形表示状态,箭头表示状态之间的转换,各状态的描述如表1所示。图中用粗线表示客户端主动和被动的服务器端建立连接的正常过程:客户端的状态变迁用红色粗实线,服务器端的状态变迁用蓝色粗虚线。细线用于不常见的序列,如复位、同时打开、同时关闭等。图中的每条状态变原创 2015-06-13 14:56:31 · 870 阅读 · 0 评论 -
网络的两大模型
1. OSI的七层框架模型开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。2. TCP/IP协议参考模型TCP原创 2015-06-13 09:22:11 · 950 阅读 · 0 评论 -
网络上的那些叫法 那些词
一网络互联中间设备的叫法物理层:转发器(repeater)。数据链路层:网桥或桥接器(bridge)。网络层:路由器(router)。网桥和路由器的混合物:桥路器(brouter)。应用层(或指网络层以上):网关(gateway)。 注:1.当中继系统是转发器或网桥时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。2.互联网都原创 2015-06-13 09:48:58 · 1058 阅读 · 0 评论 -
运输层概述与运输层的端口
运输层协议概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是用户功能中的最低层。当网络的边缘部分中的两个主机使用网络的核心部分的功能进行端到端的通信时,只有位于网络边缘部分的主机的协议栈才有运输层,而网络核心部分中的路由器在转发分组时都只用到下三层的功能。两个主机进行通信实际上就是两个主机中的应用进程原创 2015-06-13 10:20:32 · 8642 阅读 · 0 评论 -
TCP头部解析
一一解析SourcePort(源端口)和DestinationPort(目的端口):各占2个字节,端口是运输层与应用层的服务接口,运输层的复用和分用功能都要通过端口才能实现。 注:TCP的包是没有IP地址的,那是IP层上的事。但是有源端口和目标端口。SequenceNumber(序号):占4个字节,TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是原创 2015-06-13 13:24:28 · 6954 阅读 · 0 评论 -
IP头部解析
一个IP数据报由首部和数据两部分组成。首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。版本——占4位,指IP协议的版本,目前的IP协议版本号为4(即IPv4)首部长度——占4位,可表示的最大数值,是15个单位(一个单位为4字节),因此IP的首部长度的最大值是60字节。区分服务——占8位,用来获得更好的服务,原创 2015-06-15 16:29:15 · 2794 阅读 · 0 评论 -
IP分类
IP地址及其记法我们把整个因特网看成为一个单一的、抽象的网络。IP地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的32位的标识符。ip地址的点分十进制记法IP地址的编址方法分类的IP地址:这是最基本的编址方法,在1981年就通过了相应的标准协议。子网的划分:这是对最基本的编址方法的改进,其标准[RFC950]在1985年通过。构成超原创 2015-06-15 15:57:36 · 869 阅读 · 0 评论 -
Apache tomcat与nginx
一、 定义: 1. Apache Apache HTTP服务器是一个模块化的服务器,可以运行在几乎所有广泛使用的计算机平台上。其属于应用服务器。Apache支持支持模块多,性能稳定,Apache本身是静态解析,适合静态HTML、图片等,但可以通过扩展脚本、模块等支持动态页面等。 (Apche可以支持PHPcgiperl,但是要使用Java的话,你需要Tomcat在Apache后台支撑,原创 2015-08-31 20:47:50 · 497 阅读 · 0 评论 -
unix网络编程前奏
一 与网络编程相关的数据类型:数据类型 说明 头文件int8_t 带符号的8位整数 uint8_t原创 2015-09-01 08:14:48 · 314 阅读 · 0 评论 -
I/O复用 select poll epoll
一 定义I/O复用:当一个进程需要处理多个I/O接口的处理,这样的进程需要一种预先告知内核的能力,使得内核一旦发现进程指定的一个或多个I/O条件就绪,它就通知进程。这个能力称为I/O复用,是由select和poll这两个函数支持的。I/O复用典型使用在以下网络应用场合:1.当客户处理多个描述符(通常是交互式输入和网络套接字)时,必须使用I/O复用。2.如果一个TCP服务器既要处原创 2015-09-01 08:03:21 · 363 阅读 · 0 评论 -
TCP的流量控制与拥塞控制
流量控制 一般说来,我们总是希望数据传输得更快一些。但如果发送方把数据发送得过快,接收方就可能来不及接收,这就会造成数据的丢失。流量控制(flowcontrol)就是让发送方的发送速率不要太快,既要让接收方来得及接收,也不要使网络发生拥塞。利用滑动窗口实现流量控制利用滑动窗口机制可以很方便地在TCP连接上实现流量控制,通过控制TCP报文段的发送时机来达到控制的原创 2015-06-23 09:41:26 · 2467 阅读 · 0 评论 -
几种经典的网络服务器架构模型的分析与比较
几种经典的网络服务器架构模型的分析与比较2012-07-17 13:32 8735人阅读 评论(4)收藏 举报前言事件驱动为广大的程序员所熟悉,其最为人津津乐道的是在图形化界面编程中的应用;事实上,在网络编程中事件驱动也被广泛使用,并大规模部署在高连接数高吞吐量的服务器程序中,如 http 服务器程序、ftp 服务器程序等。相比于传统的网络编程方式,事件驱动转载 2015-02-05 10:35:25 · 348 阅读 · 0 评论 -
大端与小端
在裘宗燕翻译的《程序设计实践》里,这对术语并没有翻译为“大端”和小端,而是“高尾端”和“低尾端”,这就好理解了:如果把一个数看成一个字符串,比如11223344看成"11223344",末尾是个'\0','11'到'44'个占用一个存储单元,那么它的尾端很显然是44,前面的高还是低就表示尾端放在高地址还是低地址,它在内存中的放法非常直观,如下图: “高/低尾端”比“大/小端”更不容易让转载 2015-06-19 16:18:10 · 442 阅读 · 0 评论 -
TCP 的那些事儿(下)
TCP 的那些事儿(下)2014年5月28日陈皓发表评论阅读评论 42,128 人阅读 这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳定。转载 2014-11-05 19:48:27 · 365 阅读 · 0 评论 -
拓展了解:HTTP2.0&&SPDY
HTTP 2.0即超文本传输协议 2.0,是下一代HTTP协议。是由互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis (httpbis)工作小组进行开发。是自1999年http1.1发布后的首个更新。HTTP 2.0在2013年8月进行首次合作共事性测试。在开放互联网上HTTP 2.0将只用于https://网址,而 http://网址将继续使用HTTP原创 2015-02-10 09:00:54 · 497 阅读 · 0 评论 -
http协议中各种长度限制
1. URL长度限制在Http1.1协议中并没有提出针对URL的长度进行限制,RFC协议里面是这样描述的,HTTP协议并不对URI的长度做任何的限制,服务器端必须能够处理任何它们所提供服务多能接受的URI,并且能够处理无限长度的URI,如果服务器不能处理过长的URI,那么应该返回414状态码。 虽然Http协议规定了,但是Web服务器和浏览器对URI都有自己的长度限制。服务器原创 2015-02-10 08:59:18 · 5117 阅读 · 0 评论 -
Https及其原理
https 分享一 这次分享的主要内容:1.对 nginx 服务器进行了配置使它可以接受 https 的访问。2.演示通过浏览器和程序以 https 的方式来访问前面配置好的 nginx 服务器。3.演示程序以 https 的方式来访问前面配置好的 nginx 服务器上指定路径下的 lua 程序,并执行这个程序后返回结果。这样的话,咱们的一些涉及到敏感数据的 api 就可以原创 2015-02-10 08:58:16 · 721 阅读 · 0 评论 -
HTTP
简介特点内容原理https及其原理http1.0与http1.1区别http协议中各种长度限制http协议未来展望:http2.0简介HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。1.它定义了浏览器(即万维网客户端)怎样向万维网服务器请求万维网文档,以及服务器怎样把文档传送给浏览器。2.它可以使浏览器更加原创 2015-02-10 08:55:10 · 549 阅读 · 0 评论 -
http1.0和http1.1的区别
HTTP详解(3)-http1.0 和http1.1 区别翻了下HTTP1.1的协议标准RFC2616,下面是看到的一些它跟HTTP1.0的差别。长连接Host域带宽优化消息传递缓存1. Persistent Connection持久连接 HTTP 1.1默认使用长连接,HTTP 1.0默认使用短连接。长连原创 2015-02-10 09:00:18 · 6971 阅读 · 0 评论 -
HTTP原理
1.TCP/IP协议参考模型的各层对应的协议如下图,可知HTTP是应用层的协议。HTTP协议栈中各层数据流客户端发起一次请求的时候: 客户端会将请求封装成http数据包-->封装成Tcp数据包-->封装成Ip数据包--->封装成数据帧--->硬件将帧数据转换成bit流(二进制数据)-->最后通过物理硬件(网卡芯片)发送到指定地点。原创 2015-02-10 08:57:04 · 377 阅读 · 0 评论 -
网络协议三要素
网络协议是什么 网络协议的定义:为计算机网络中进行数据交换而建立的规则、标准或约定的集合。 一个网络协议至少包括三要素: 语法:用来规定信息格式;数据及控制信息的格式、编码及信号电平等。 语义:用来说明通信双方应当怎么做;用于协调与差错处理的控制信息。 定时:(时序)定义了何时进行通信,先讲什么,后讲什么,讲话的速度等。比如是采用同步传输还是异步传输。 网络协议转载 2015-05-10 10:52:36 · 27179 阅读 · 0 评论 -
用户数据报协议 UDP
UDP 简述 UDP只在IP的数据报服务之上增加了很少一点的功能,即端口的功能和差错检测的功能。UDP的主要特点UDP是无连接的,即发送数据之前不需要建立连接。UDP使用尽最大努力交付,即不保证可靠交付,同时也不使用拥塞控制。UDP没有拥塞控制,很适合多媒体通信的要求。 UDP是面向报文的。 UDP支持一对一、一对多、多对一和多对多的交互通信。UDP的首部开原创 2015-06-16 17:26:12 · 1171 阅读 · 0 评论 -
URL
URL是Uniform Resource Location的缩写,译为“统一资源定位符”。通俗地说,URL是Internet上用来描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上,特别是著名的Mosaic。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。URL的格式URL的格式由下列三部分组成: 第一部分是协议(或称为服务方式); 第原创 2015-02-10 09:05:48 · 581 阅读 · 0 评论 -
IPV6
互联网通信协议第6版(英文:InternetProtocolversion6,缩写:IPv6)是互联网协议的最新版本,用于数据包交换互联网络的网络层协议,旨在解决IPv4地址枯竭问题。注:IPv6意图取代IPv4,而IPv4在2014年5月仍然在网络交通上占有96%。在2014年10月,通过IPv6使用Google服务的用户百分率首次超过5%。 2011年互联网协会将6月8日定为世界原创 2015-06-18 11:21:46 · 1822 阅读 · 0 评论 -
TCP的可靠传输
可靠传输的工作原理停止等待ARQ协议使用上述的确认和重传机制,我们就可以在不可靠的传输网络上实现可靠的通信。这种可靠传输协议常称为停止等待自动重传请求ARQ(Automatic Repeat reQuest)。ARQ表明重传的请求是自动进行的,接收方不需要请求发送方重传某个出错的分组。注:在发送完一个分组后,必须暂时保留已发送的分组的副本,分组和确认分组都必须进行编原创 2015-06-18 15:23:13 · 684 阅读 · 0 评论 -
路由器
1.路由器的结构路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。其典型的结构如下图所示:2.路由器转发分组的原理 将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止。输入端口的处理输入端口对线路原创 2015-06-18 14:35:23 · 1949 阅读 · 0 评论 -
IP协议配套的四个协议:ARP RARP ICMP IGMP
谁来保证可靠性在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统(即是网络层还是运输层)?方案一:让网络负责可靠交付(借鉴电信网的成功经验)面向连接的通信方式,建立虚电路(VirtualCircuit),以保证双方通信所需的一切网络资源。如果再使用可靠传输的网络原创 2015-06-18 10:13:04 · 7716 阅读 · 0 评论 -
使用Wireshark抓TCP、http包
使用Wireshark抓TCP、http包打开Wireshark,选择工具栏上的“Capture”->“Options”,界面选择如图1所示: 图1 设置Capture选项一般读者只需要选择最上边的下拉框,选择合适的Device,而后点击“Capture Filter”,此处选择的是“HTTP TCP port(80)”,选转载 2015-05-18 14:26:52 · 10649 阅读 · 0 评论 -
unix网络编程的基本函数
一 socket#include int socket(int family,int type,int protocol);返回:若成功则为套接字描述符,若出错则返回-1.说明:family参数指明协议族,type参数指明套接字类型,protocol参数应设为某个协议类型常值,或设为0以选择所给定family和type组合的系统默认值。原创 2015-09-01 08:19:03 · 532 阅读 · 0 评论