计算机网络
文章平均质量分 58
知之可否
这个作者很懒,什么都没留下…
展开
-
原创-“差错控制”在数据链路层和运输层中的区别(不同)
据我所知,数据链路层和运输层都许诺了实现“差错控制”,那他们之间有什么区别呢?重复了吗?相信我举个例子之后,你就明了了。1.条件 要传送如下数据: 数据a:1000 数据b:1100 数据c:1110 传送情况: 发送端S发送: 1000 1100 1110 接受端R接收: 1010原创 2013-06-18 17:06:02 · 8519 阅读 · 9 评论 -
如何写一个Web服务器
http://www.jianshu.com/p/912fa6d0b5e0#最近两个月的业余时间在写一个私人项目,目的是在Linux下写一个高性能Web服务器,名字叫Zaver。主体框架和基本功能已完成,还有一些高级功能日后会逐渐增加,代码放在了github。Zaver的框架会在代码量尽量少的情况下接近工业水平,而不像一些教科书上的toy server为了教原理而舍弃了很多原本se转载 2016-07-06 16:30:34 · 2137 阅读 · 1 评论 -
cookie 和session 的区别详解
这些都是基础知识,不过有必要做深入了解。先简单介绍一下。二者的定义:当你在浏览网站的时候,WEB 服务器会先送一小小资料放在你的计算机上,Cookie 会帮你在网站上所打的文字或是一些选择,都纪录下来。当下次你再光临同一个网站,WEB 服务器会先看看有没有它上次留下的 Cookie 资料,有的话,就会依据 Cookie里的内容来判断使用者,送出特定的网页内容给你。转载 2016-07-09 11:15:43 · 4398 阅读 · 2 评论 -
socket中的短连接与长连接
一、长连接与短连接长连接: 指在一个TCP连接上可以连续发送多个数据包, 在TCP连接保持期间,如果没有数据包发送,需要双方发检测包以维持此连接; 一般需要自己做在线维持。 短连接: 指通信双方有数据交互时,就建立一个TCP连接,数据发送完成后,则断开此TCP连接; 一般银行都使用短连接。 它的优点是:管理起来比较简转载 2016-08-03 15:46:17 · 1784 阅读 · 0 评论 -
网络IO之阻塞、非阻塞、同步、异步总结
1、前言 在网络编程中,阻塞、非阻塞、同步、异步经常被提到。unix网络编程第一卷第六章专门讨论五种不同的IO模型,Stevens讲的非常详细,我记得去年看第一遍时候,似懂非懂,没有深入理解。网上有详细的分析:http://blog.csdn.net/historyasamirror/article/details/5778378。我结合网上博客和书总结一下,加以区别,加深理解。转载 2016-08-03 16:50:22 · 510 阅读 · 0 评论 -
GET和POST面试知识点
导读:大部分APP都依赖于网络通信,对于开发者来说,基于网络通信的开发无疑是必须掌握的。HTTP通信作为目前计算机主要的通信协议,是企业面试当中必问的。对于HTTP通信的概念,本文不作说明,我将在后续的文章中详细介绍。本文主要讲讲热点问题,就是HTTP网络请求中GET和POST方法的区别。一、区别1.效率GET的意思是『得』,从服务器获取数据(也可以上传数据,参数就是),效率较转载 2016-08-16 09:23:48 · 8171 阅读 · 1 评论 -
UDP打洞原理
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.许多P2P软件比如SKYPE,QQ,电驴之类需要不同内网的两台机子进行通信,而路由器的NAT机制决定了内网访问外网容易,而外网访问内网困难,那如何才能做到这一点呢?有办法------打洞!具体实现方法需要一台服务器,现在假设两台内网PC,A和B想用端口40000通信,网关分转载 2016-08-30 21:03:43 · 861 阅读 · 0 评论 -
TCP四种计时器
TCP共使用以下四种计时器,即重传计时器、坚持计时器、保活计时器和时间等待计时器 。这几个计时器的主要特点如下: 1、重传计时器 当TCP发送报文段时,就创建该特定报文段的重传计时器 。可能发生两种情况: (1)、若在计时器截止时间到( 通常是60秒 )之前收到了对此特定报文段的确认,则撤销此计时器。 (2)、若在收到了对此特定报文段的确认之前计转载 2016-09-01 22:01:07 · 670 阅读 · 0 评论 -
Web Cache原理,你真的造吗?
一、Web Cache在介绍Web cache时,我们需要简单介绍缓存的理解1.1 缓存解释缓存通常是基于键值对来缓存的,键通过hash计算后,存放于内存某个空间,所以键可以理解为索引。而值是存放在内存空间或是磁盘空间上。当用户的用户请求送达至Web服务器,Web服务器会对URL进行hash计算,然后比对缓存(hash表)中的键。如若命中,则根据与之对应的值找到数据转载 2016-08-14 11:47:28 · 15043 阅读 · 0 评论 -
Linux下的I/O复用与epoll详解(重点)
前言 I/O多路复用有很多种实现。在linux上,2.4内核前主要是select和poll,自Linux 2.6内核正式引入epoll以来,epoll已经成为了目前实现高性能网络服务器的必备技术。尽管他们的使用方法不尽相同,但是本质上却没有什么区别。本文将重点探讨将放在EPOLL的实现与使用详解。为什么会是EPOLLselect的缺陷 高并发的核转载 2016-07-01 15:39:41 · 540 阅读 · 0 评论 -
网络面试题:TCP和UDP的9个区别是什么
TCP和UDP是两个传输层协议,广泛应用于网络中不同主机之间传输数据。对任何程序员来说,熟悉TCP和UDP的工作方式都是至关重要的。这就是为什么TCP和UDP是一个流行的Java编程面试问题。我曾经在各种不同的Java面试中见过这个问题,尤其是对服务器端Java开发人员的面试。由于FIX(金融信息交换)协议也是一个基于TCP协议,一些投资银行,对冲基金,和交换解决方案提供商也在寻找有良好的TCP和转载 2016-08-14 22:45:19 · 8418 阅读 · 0 评论 -
非阻塞socket-connect
我们知道,linux下socket编程有常见的几个系统调用:对于服务器来说, 有socket(), bind(),listen(), accept(),read(),write()对于客户端来说,有socket(),connect()这里主要要讲的是客户端这边的connect函数。对于客户端来说,需要打开一个套接字,然后与对端服务器连接,例如: 1 in转载 2016-10-07 17:53:09 · 836 阅读 · 0 评论 -
网关到底是什么
网关实质上是一个网络通向其他网络的IP地址。比如有网络A和网络B,网络A的IP地址范围为“192.168.1.1~192. 168.1.254”,子网掩码为255.255.255.0;网络B的IP地址范围为“192.168.2.1~192. 168.2.254”,子网掩码为255.255.255.0。在没有路由器的情况下,两个网络之间是不能进行TCP/IP通信的,即使是两个网络连接在同一台交换原创 2016-11-21 11:50:28 · 1637 阅读 · 0 评论 -
ip首部校验和计算
IP首部校验和的计算方法: 1.把校验和字段清零。 2.然后对每16位(2字节)进行二进制反码求和,反码求和的意思是先对每16位求和,再将得到的和转为反码。 接下来详细描述反码求和的步骤:看下面的代码 算法:SHORT checksum(USHORT* buffer, int size){ unsigned long cksum = 0转载 2016-04-21 16:36:08 · 10814 阅读 · 2 评论 -
ping和traceroute工作原理
ping命令工作原理ping命令主要是用于检测网络的连通性。Ping命令发送一个ICMP请求报文给目的IP,然后目的IP回复一个ICMP报文。原理:网络上的机器都有唯一确定的IP地址,我们给目标IP地址发送一个数据包,对方就要返回一个同样大小的数据包,根据返回的数据包我们可以确定目标主机的存在,可以初步判断目标主机的操作系统等。因为ping命令是使用ICMP协议,所以没有端口号,但转载 2016-06-21 22:31:58 · 1629 阅读 · 0 评论 -
MAC
MAC地址 MAC(Media Access Control)地址,或称为 MAC位址、硬件位址,用来定义网络设备的位置。在OSI模型中,第三层网络层负责 IP地址,第二层数据链路层则负责 MAC位址。因此一个主机会有一个IP地址,而每个网络位置会有一个专属于它的MAC位址。目录概述解释作用获取方法修改方法应用原创 2013-06-06 20:43:40 · 1033 阅读 · 0 评论 -
TCP协议中的三次握手和四次挥手(图解)
转自http://blog.csdn.net/whuslei/article/details/6667471建立TCP需要三次握手才能建立,而断开连接则需要四次握手。整个过程如下图所示:先来看看如何建立连接的。首先Client端发送连接请求报文,Server段接受连接后回复ACK报文,并为这次连接分配资源。Client端接收到ACK报文后也向转载 2016-04-26 19:54:55 · 316 阅读 · 0 评论 -
TCP协议三次握手过程分析
TCP(Transmission Control Protocol) 传输控制协议TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接:位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urge转载 2016-04-26 19:59:26 · 356 阅读 · 0 评论 -
理解TCP为什么需要进行三次握手(白话)
转自 http://www.cnblogs.com/yuilin/archive/2012/11/05/2755298.html首先简单介绍一下TCP三次握手 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第二次握手:服转载 2016-04-26 20:05:06 · 366 阅读 · 0 评论 -
ip数据包经由路由转发的时候源ip,目的ip是否改变
ip数据包经由路由转发的时候源ip,目的ip是否改变?最近面试网络方面的经常问到这个问题,答案是不能改变的,*除非做了nat转换才能改变。不过mac地址是变化的,因为发送端开始不知道目的主机的mac地址,所以每经过一个路由器mac地址是变化的。目的mac地址是如何得到的?TCP/IP里面是用的ARP协议。比如新建了一个内网,如果一台机器A找机器B,封装FRAME时(OSI的第二层用的数据格式),要封转载 2016-04-21 23:01:30 · 34469 阅读 · 8 评论 -
QQ通信协议
不管UDP还是TCP,最终登陆成功之后,QQ都会有一个TCP连接来保持在线状态。这个TCP连接的远程端口一般是80,采用UDP方式登陆的时候,端口是8000。因此,假如你所在的网络开放了80端口(80端口是最常用端口。。就是通常访问Web的端口,禁掉它的话,你的网络对你来说价值已经不大了),但没有屏蔽腾讯的服务器IP,恭喜你,你是可以登陆成功QQ的。二、聊天消息通信。转载 2016-05-06 19:41:34 · 3363 阅读 · 0 评论 -
网络字节序转换
主机有大端和小端网络字节序都是大端long htonl(long val){ return val > 8 & 0x0000FF00) | val >> 24;}int main(){ long val = 0x12345678; cout << hex << htonl(val) << endl; return 0;}结果78563412原创 2016-06-28 17:10:28 · 714 阅读 · 0 评论 -
用户用浏览器访问一个网站的时候背后的过程与步骤是怎样的?
作者:邱永臣叫西门追雪链接:https://www.zhihu.com/question/20513729/answer/96332435来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。假设你用一个全新的浏览器(第一次启动的那种),访问百度(http://www.baidu.com/),在你敲入网址并按下回车之后,将会发生以下神奇的事情:浏转载 2016-07-11 11:40:18 · 2221 阅读 · 0 评论 -
IO多路复用之select总结
1、基本概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。 (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。 (3)如果一个TCP服务器既要处理监听套接口,又要处理已连接套接口,一般也要用转载 2016-07-01 10:54:46 · 374 阅读 · 0 评论 -
IO多路复用之poll总结
1、基本知识 poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。2、poll函数转载 2016-07-01 11:00:04 · 298 阅读 · 0 评论 -
IO多路复用之epoll总结
1、基本知识 epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。2、epoll接口 epoll操作过程需要三个接口,分别如下:转载 2016-07-01 11:07:11 · 223 阅读 · 0 评论 -
linux下epoll如何实现高效处理百万句柄的
开发高性能网络程序时,windows开发者们言必称iocp,linux开发者们则言必称epoll。大家都明白epoll是一种IO多路复用技术,可以非常高效的处理数以百万计的socket句柄,比起以前的select和poll效率高大发了。我们用起epoll来都感觉挺爽,确实快,那么,它到底为什么可以高速处理这么多并发连接呢?先简单回顾下如何使用C库封装的3个epoll系统调用吧。转载 2016-07-01 15:57:10 · 386 阅读 · 0 评论 -
HTTP协议中PUT和POST使用区别
有的观点认为,应该用POST来创建一个资源,用PUT来更新一个资源;有的观点认为,应该用PUT来创建一个资源,用POST来更新一个资源;还有的观点认为可以用PUT和POST中任何一个来做创建或者更新一个资源。这些观点都只看到了风格,争论起来也只是争论哪种风格更好,其实,用PUT还是POST,不是看这是创建还是更新资源的动作,这不是风格的问题,而是语义的问题。在HTTP中,PUT被定转载 2017-01-05 17:12:34 · 428 阅读 · 0 评论