计算机网络
文章平均质量分 78
wanghaobo920
这个作者很懒,什么都没留下…
展开
-
关于网关的精典描述通俗易懂
假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的网关。当你想跟院子里的某个小伙伴玩,只要你在院子里大喊一声他的名字,他听到了就会回应你,并且跑出来跟你玩。但是你不被允许走出大门,你想与外界发生的一切联系,都必须由门口的李大爷(网关)用电话帮助你联系。假如你想找你的同学小明聊天,小明家住在很远的另外一个院子里,他家的院子里也有一转载 2012-07-07 16:38:27 · 1501 阅读 · 0 评论 -
TCP之send函数研究
tcp协议本身是可靠的,并不等于应用程序用tcp发送数据就一定是可靠的.不管是否阻塞,send发送的大小,并不代表对端recv到多少的数据.在阻塞模式下, send函数的过程是将应用程序请求发送的数据拷贝到发送缓存中发送并得到确认后再返回.但由于发送缓存的存在,表现为:如果发送缓存大小比请求发送的大小要大,那么send函数立即返回,同时向网络中发送数据;否则,send向网络发送缓存中不能容转载 2012-09-25 20:28:23 · 456 阅读 · 0 评论 -
UDP协议下数据的传输分析
最近在做项目的时候发现了一个严重问题,可能不光是我多人在使用 win32 socket 进行开发的时候也会遇到的问题。首先我分析的模块是 我项目中文件传输的部分,我做的是一个基于UDP协议的一个局域网通信软件,里面有一个文件传输的模块 ,起初的时候我也完成了文件传输的功能,以为这就可以了,其实我在做的时候忽略了很多细节部分,比如数据应该如何传输 ,一次最多发送多少数据 以及如何控制同步问题 。这些转载 2012-11-18 22:16:11 · 1269 阅读 · 0 评论 -
tcp有限状态机分析
原文地址:http://www.2cto.com/net/201111/112030.html 这幅图是TCP的状态机,看了2个小时,分析总结如下:(1)CLOSED 状态时初始状态。(2)LISTEN:被动打开,服务器端的 状态变为LISTEN(监听)。被动打开的概念:连接的一端的应用程序通知操作系统,希望建立一个传入的连接。这时候操作系统为连接的转载 2013-01-03 17:10:17 · 471 阅读 · 0 评论 -
酒桌上的计算机网络
酒宴开始。酒杯盛酒,酒杯碰撞,这是物理层;你要根据不同人的外貌特征找到你要敬酒的人所坐的位置,这是IP协议(网络层);你明白,敬酒的实际目的是加深感情,这在应用层,而这酒中的感情,才是报文的数据部分。你和某位新见面的兄弟互相来回敬酒,这叫TCP;你给同一位好兄弟敬酒好多次,死命灌他,他也不回礼,这叫UDP;你对全桌的人说,来,咱们同归于尽,这叫广播;你在对这一桌转载 2013-01-03 17:11:40 · 441 阅读 · 0 评论 -
路由器和交换机的区别
交换机与路由器的区别 计算机网络往往由许多种不同类型的网络互连连接而成。如果几个计算机网络只是在物理上连接在一起,它们之间并不能进行通信,那么这种“互连”并没有什么实际意义。因此通常在谈到“互连”时,就已经暗示这些相互连接的计算机是可以进行通信的,也就是说,从功能上和逻辑上看,这些计算机网络已经组成了一个大型的计算机网络,或称为互联网络,也可简称为互联网、互连网。 将网络互相连接起转载 2013-01-09 22:31:01 · 380 阅读 · 0 评论 -
tcpip技术详解
TCP报文段首部格式如下图所示:常用的选项段包括:1.窗口扩大选项 2.时间戳选项 3.MMS选项等需要注意的事:1.序号是以字节为单位,因此最多可以表示2^32-1个字节,到达最大值以后从0开始 2.并不是每一个报文段都携带数据 3.TCP的源地址和目的地址包含在其外部的IP首部中,所以TCP首部只有源端口和目的端口信息4.校验和覆盖了整个TCP报文段转载 2013-01-12 14:22:59 · 908 阅读 · 0 评论 -
常用服务器模型总结
UNPv3上一共总结了9种服务器模型分别是:1.迭代服务器 2.并发服务器,为每个客户fork一个进程 3.预先派生子进程,每个子进程都调用accept,accept无上锁保护 4.预先派生子进程,以文件锁的方式保护accept 5.预先派生子进程,以线程互斥锁上锁的方式保护accept6.预先派生子进程,由父进程向子进程传递套接口描述字 7.并发服务器,为每个客户请求创建一个转载 2013-01-12 14:06:52 · 400 阅读 · 0 评论 -
深入理解HTTP协议、HTTP协议原理分析
http协议学习系列1. 基础概念篇1.1 介绍HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写。它的发展是万维网协会(World Wide Web Consortium)和Internet工作小组IETF(Internet Engineering Task Force)合作的结果,(他们)最终发布了一系列的RFC,RFC 1945定义了H转载 2013-01-13 14:06:38 · 901 阅读 · 0 评论 -
TCP/IP 主要报文头格式
TCP/IP协议是一个比较复杂的协议集,有很多专业书籍介绍。在此,我仅介绍其与编程密切相关的部分:以太网上TCP/IP协议的分层结构及其报文格式。我们知道TCP/IP协议采用分层结构,其分层模型及协议如下表:应 用 层(Application)HTTP、Telnet、FTP、SMTP、SNMP传 输 层(Transport)TCP、UDP转载 2013-01-12 14:08:43 · 578 阅读 · 0 评论 -
如何学习网络编程
经过多年的网络编程实践之后,个人觉得初学网络编程者可以从以下几个步骤开展:1)下载一个可以互动的学习工具,通过这个与这个工具互动,我们可以及时的学到每个api的结果如果。我个人强烈推荐一个互动好工具,即python,下载地址http://www.python.org 对于有c/c++或java基础的朋友通过一两个礼拜的时间就可以上手了,另外个人建议初学者可以学习dive into pyth转载 2013-01-12 14:14:41 · 424 阅读 · 0 评论 -
TCP/IP数据包结构分析
一般来说,网络编程我们只需要调用一些封装好的函数或者组件就能完成大部分的工作,但是一些特殊的情况下,就需要深入的理解网络数据包的结构,以及协议分析。如:网络监控,故障排查等…… IP包是不安全的,但是它是互联网的基础,在各方面都有广泛的应用。由IP协议衍生的协议族有10数种(据我所知),以后还会出现更多的基于IP的协议… 先从实际出发吧!一般转载 2013-08-11 18:30:47 · 1020 阅读 · 0 评论 -
TFTP协议规范
TFTP协议1. 目的TFTP是一个传输文件的简单协议,它其于UDP协议而实现,但是我们也不能确定有些TFTP协议是基于其它传输协议完成的。此协议设计的 时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。传输中 有三种模式:netascii,这是8位的ASCII码形式,另一种是octet,这是8位源数据转载 2013-08-14 22:50:15 · 860 阅读 · 0 评论 -
网络传输——Base64详解
网络传输——Base64详解自从引用以来,Base64编码的标准极普及为的迅速。不过,把文件作为附件通过网际邮件扩充协议(MIME)传送时,Base64是标准的编码标准。然而,几乎所有的电子邮件客户端都是用MIME发送文件(以附件形式)的,这就意味着大多数的电子邮件客户端使用Base64对文件编码后通过网络传输。格式如下:Content-Transfer-Encoding:base64(转载 2012-09-23 13:31:41 · 5800 阅读 · 0 评论 -
浅谈Base64编码
我打赌当你见到Base64这个词的时候你会觉得在哪里见过,因为在你能够上网看到这篇文章的时候你已经在后台使用它了。如果您对二进制数有所了解,你就可以开始读它了。打开一封Email,查看其原始信息(您可以通过收取、导出该邮件用文本编辑器查看)。你会看到类似这样的一个效果: Date: Thu, 25 Dec 2003 06:33:07 +0800 From: "eSX?!" sn转载 2012-09-23 12:15:16 · 565 阅读 · 0 评论 -
[基础] UDP数据包大小一般为多少?什么是碎片包?
转载自冠威博客首先,我们知道,TCP/IP通常被认为是一个四层协议系统,包括链路层,网络层,传输层,应用层.UDP属于运输层,下面我们由下至上一步一步来看:以太网(Ethernet)数据帧的长度必须在46-1500字节之间,这是由以太网的物理特性决定的.这个1500字节被称为链路层的MTU(最大传输单元).但这并不是指链路层的长度被限制在1500字节,其实这个MTU指的是链路层的数据区转载 2012-09-20 21:31:33 · 7686 阅读 · 0 评论 -
浅析setsockopt()
浅析:setsockopt()1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuse转载 2012-07-15 21:55:17 · 306 阅读 · 0 评论 -
base64编码原理与实现
浅谈Base64编码出处:CSTC 作者:朱岩 时间:2004-1-30 8:43:0注:本文原理为作者转载,具体地址不明,望原文作者谅解,但代码实现部份全为作者本人完成,代码可以以任意方式使用 我打赌当你见到Base64这个词的时候你会觉得在哪里见过,因为在你能够上网看到这篇文章的时候你已经在后台使用它了。如果您对二进制数有所了解,你就可以开始读它了。打开一封Ema转载 2012-07-18 21:26:15 · 389 阅读 · 0 评论 -
Linux TCP/IP协议栈源码阅读笔记
一.linux内核网络栈代码的准备知识1. linux内核ipv4网络部分分层结构:BSD socket层: 这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件主要有:/net/socket.c /net/protocols.c etcINET socket层:BSD socket是个可以用于各转载 2012-08-09 22:55:03 · 300 阅读 · 0 评论 -
TCP/IP传输层,你懂多少?
转自:http://java-mzd.iteye.com/blog/1007577你所不知道的传输层题记:23页的文档上,满满当当的写满了笔记,纸质的东西,始终害怕丢失,还是选择把它总结到博客上来。PS.老规矩,列出可能遇到的20个问题,如果您是都能回答的高手,请您绕道,我是小菜,只做自己的学习笔记。1. 传输层的主要功能是什么?2. 传输层如何区分不同转载 2012-08-09 22:51:14 · 553 阅读 · 0 评论 -
sockaddr结构与sockaddr_in结构
struct sockaddr {unsigned short sa_family; /* address family, AF_xxx */char sa_data[14]; /* 14 bytes of protocol address */};sa_family是地址家族,一般都是“AF_xxx”的形式。好像通常大多用的是都是AF_INET。sa_data是14字转载 2012-09-28 20:10:45 · 347 阅读 · 0 评论 -
同步 异步 阻塞 非阻塞的区别
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO ,我相信这几个词困扰过很多人,更痛苦的是,如果你查阅过文献资料,你会发现不同的资料中的解释是不一样的,例如在wiki中,异步和非阻塞被当成了一个概念 。出现这种情况的原因,我认为很大程度上是因为IO这个概念本身就很宽泛,它其实包含了好几个层面转载 2012-09-28 22:41:17 · 482 阅读 · 0 评论 -
Linux网络编程入门 (转载)
Linux网络编程入门 (转载)(一)Linux网络编程--网络知识介绍Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端. 客户端在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序。 比如我们使用ftp程序从另外一个地方获取文件的时候,是我转载 2012-09-28 22:03:58 · 623 阅读 · 0 评论 -
TCP状态转移图学习总结 (转)
TCP状态转移图学习总结 (转)这是网络编程的基础,tcp的状态转移图说到底就是一个状态机的不同状态之间的转换关系以及触发这些状态需要的条件,一共存在11个状态,我们来逐一分析: 1.CLOSED:起始点,在超时或者连接关闭时候进入此状态。 2.LISTEN:svr端在等待连接过来时候的状态,svr端为此要调用socket, bind,listen函数,就能进入转载 2012-09-28 22:08:00 · 1133 阅读 · 0 评论 -
64BASE编解码(转载)
case 9 Stress: All files in a working directory encoded/decoded and compared with file comparison utility to ensure that multiple runs do not cause problems such as exhausting file handles, tm转载 2012-09-28 22:08:42 · 481 阅读 · 0 评论 -
setsockopt()用法(转载)
1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用 closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket: BOOL bReuseaddr=TRUE; setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BO转载 2012-09-28 22:09:32 · 349 阅读 · 0 评论 -
同步与异步通信的区别
同步-就是你叫我去吃饭,我听到了就和你去吃饭;如果没有听到,你就不停的叫,直到我告诉你听到了,才一起去吃饭。异步-就是你叫我,然后自己去吃饭了,我得到消息后可能立即走,也可能等到下班才去吃饭。所以,要我请你吃饭就用同步的方法,要请我吃饭就用异步的方法,这样你可以省钱。同步与异步传输的区别1,异步传输是面向字符的传输,而同步传输是面向比特的传输。转载 2012-09-30 18:46:20 · 999 阅读 · 0 评论 -
以太网帧最小字节数以及以太网碰撞
说明:本文源自多个网页,原文链接已经不可寻以太网是无连接的,不可靠的服务,采用尽力传输的机制。以太网CSMA/CD我就不多讲了,我相信大家都了解这个原理。以太网是不可靠的,这意味着它并不知道对方有没有收到自己发出的数据包,但如果他发出的数据包发生错误,他会进行重传。以太网的错误主要是发生碰撞,碰撞是指两台机器同时监听到网络是空闲的,同时发送数据,就会发生碰撞,碰撞对于以太网来说是正常的。转载 2012-09-17 21:29:35 · 935 阅读 · 0 评论 -
面向报文(UDP)和面向字节流(TCP)的区别
面向报文的传输方式是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。因此,应用程序必须选择合适大小的报文。若报文太长,则IP层需要分片,降低效率。若太短,会是IP太小。UDP对应用层交下来的报文,既不合并,也不拆分,而是保留这些报文的边界。这也就是说,应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。面向字节流的话,虽然应用程序和TCP的交互是一次一个数据块(转载 2013-09-21 17:56:56 · 2177 阅读 · 0 评论