自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(50)
  • 收藏
  • 关注

转载 TCP 的那些事儿(下)

作者: 陈皓 转载自酷壳:https://coolshell.cn/articles/11609.html这篇文章是下篇,所以如果你对TCP不熟悉的话,还请你先看看上篇《TCP的那些事儿(上)》 上篇中,我们介绍了TCP的协议头、状态机、数据重传中的东西。但是TCP要解决一个很大的事,那就是要在一个网络根据不同的情况来动态调整自己的发包的速度,小则让自己的连接更稳定,大则让整个网络更稳...

2018-11-23 09:18:55 221

转载 【转载】TCP 的那些事儿(上)

作者: 陈皓 转载自酷壳:https://coolshell.cn/articles/11564.htmlTCP是一个巨复杂的协议,因为他要解决很多问题,而这些问题又带出了很多子问题和阴暗面。所以学习TCP本身是个比较痛苦的过程,但对于学习的过程却能让人有很多收获。关于TCP这个协议的细节,我还是推荐你去看W.Richard Stevens的《TCP/IP 详解 卷1:协议》(当然,你...

2018-11-23 09:17:10 267

转载 ​​​​​​​缓存与数据库的一致性

转载文章 https://www.cnblogs.com/pomer-huang/p/8998623.html缓存与数据库的一致性缓存适用于读多写少的场景,并且能极大地提升性能和效率;但是让缓存的数据与数据库保持一致是一个难题保持一致的策略当数据更新时,先更新缓存,如果缓存更新成功,再更新数据库 适用场景有限,且实现起来较为复杂(如果数据库操作失败,要进行补偿措施,对缓存数据进行...

2018-11-23 09:09:49 235

原创 OSI将计算机网络体系结构

OSI将计算机网络体系结构(architecture)划分为以下七层: <br />1、物理层:Physical Layer <br />物理层是OSI模型中最低的一层。物理层规定:为传输数据所需要的物理链路建立、维持、拆除,而提供具有机械的, 电子的, 功能的和规范的特性. 简单的说,物理层确保原始的数据可在各种物理媒体上传输. <br /><br />物理层的功能 <br />为数据端设备提供传送数据通路. <br />传输数据 <br /><br />物理层的协议:CCITT V.24 、EIA RS

2010-10-23 12:06:00 1927

转载 关于TCP流与UDP报文

<br />“TCP是一种流模式的协议,UDP是一种数据报模式的协议”,这句话相信大家对这句话已经耳熟能详~但是,“流模式”与“数据包模式”在编程的时候有什么区别呢?以下是我的理解,仅供参考!<br />1、TCP<br />打个比方比喻TCP,你家里有个蓄水池,你可以里面倒水,蓄水池上有个龙头,你可以通过龙头将水池里的水放出来,然后用各种各样的容器装(杯子、矿泉水瓶、锅碗瓢盆)接水。<br />上面的例子中,往水池里倒几次水和接几次水是没有必然联系的,也就是说你可以只倒一次水,然后分10次接完。另外,水池

2010-09-10 23:33:00 1414

原创 以太网包长度(学习笔记)转

<br />socket包长度问题:  一个包没有固定长度,以太网限制在46-1500字节,1500就是以太网的MTU,超过这个量,TCP会为IP数据报设置偏移量进行分片传输,现在一般可允许应用层设置8k(NTFS系)的缓冲区,8k的数据由底层分片,而应用看来只是一次发送。windows的缓冲区经验值是4k,Socket本身分为两种,流(TCP)和数据报(UDP),你的问题针对这两种不同使用而结论不一样。甚至还和你是用阻塞、还是非阻塞Socket来编程有关。<br />1、通信长度,这个是你自己决定的,没有

2010-09-09 23:06:00 6628

原创 Socket 的 Send Recv 的长度问题? (转)

<br />一个包没有固定长度,以太网限制在46-1500字节,1500就是以太网的MT<br /><br />U,超过这个量,TCP会为IP数据报设置偏移量进行分片传输,现在一般可<br /><br />允许应用层设置8k(NTFS系统)的缓冲区,8k的数据由底层分片,而应用<br /><br />层看来只是一次发送。<br /><br />windows的缓冲区经验值是4k<br /><br />Socket本身分为两种,流(TCP)和数据报(UDP),你的问题针对这两种不同<br /><br />使用

2010-09-09 23:04:00 1244

原创 【转载】Windows完成端口与Linux epoll技术简介

<br /><br />WINDOWS完成端口编程<br />1、基本概念<br />2、WINDOWS完成端口的特点<br />3、完成端口(Completion Ports )相关数据结构和创建<br />4、完成端口线程的工作原理<br />5、Windows完成端口的实例代码<br />Linux的EPoll模型<br />1、为什么select落后<br />2、内核中提高I/O性能的新方法epoll<br />3、epoll的优点<br />4、epoll的工作模式 <br />5、

2010-09-07 00:08:00 718

原创 CLOSE_WAIT状态的生成原因

<br /><br />首先我们知道,如果我们的Client程序处于CLOSE_WAIT状态的话,说明套接字是被动关闭的!<br /><br />因为如果是Server端主动断掉当前连接的话,那么双方关闭这个TCP连接共需要四个packet:<br /><br />       Server  --->  FIN  --->  Client<br /><br />       Server  <---  ACK  <---  Client<br /><br />    这时候Server端处于F

2010-09-07 00:05:00 464

原创 epoll使用详解(精髓)

<br />epoll - I/O event notification facility<br /><br />在linux的网络编程中,很长的时间都在使用 select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。<br />相比于select,epoll最大的好处在于它不 会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且,在 linux/posix_types.h头文件有这样的声明:<br

2010-09-06 23:23:00 542

原创 转 linux信号测试小程序

<br />/*********************程序相关信息*********************<br />程序编号:009<br />程序编写起始日期:2008.10.26<br />程序编写完成日期:2008.10.26<br />程序修改日期:                                   修改备注:<br />程序目的:学习信号相关函数(第一部分)<br />所用主要函数:kill(),raise(),alarm(),signal(),pause()<br />程

2010-09-04 11:47:00 667

原创 转]对linux信号编程有用:Linux中信号的个数

<br />原文于:http://www.xxlinux.com/linux/art ... 07-10-30/11340.html1 ~ 31的信号为传统UNIX支持的信号,是不可靠信号(非实时的),编号为32 ~ 63的信号是后来扩充的,称做可靠信号(实时信号)。不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。另外注意:* 多个实时信号的响应顺序是有保证的。* 如果一个进程同时有实时信号和标准信号在pending,则优先响应标准信号。大家用的一般都是非时

2010-09-04 11:42:00 870

原创 C函数调用与栈

<br />3.4  C与汇编程序的相互调用<br />为了提高代码执行效率,内核源代码中有的地方直接使用了汇编语言编制。这就会涉及在两种语言编制的程序之间的相互调用问题。本节首先说明C语言函数的调用机制,然后举例说明两者函数之间的调用方法。<br />3.4.1  C函数调用机制<br />在Linux内核程序boot/head.s执行完基本初始化操作之后,就会跳转去执行init/main.c程序。那么head.s程序是如何把执行控制转交给init/main.c程序的呢?即汇编程序是如何调用执行C语言程序

2010-08-09 00:14:00 7400 1

原创 Linux操作系统下Telnet的设置方法介绍

Linux操作系统下Telnet的设置方法介绍07-07-27 16:26 发表于:《蓝色航标》 分类:未分类来源:赛迪网 linux 下telnet的设置2007-03-18 21:35Telnet服务的配置步骤如下:一、安装telnet软件包(通常要两个)1、 telnet-client (或 telnet),这个软件包提供的是 telnet 客户端程序;2、 telnet-server ,这个软件包提供的是 telnet 服务器端程序;安装之前先检测是否这些软件包

2010-07-29 01:23:00 648

转载 BM算法原理和代码

BM算法是一种精确字符串匹配算法(区别于模糊匹配)。  BM算法采用从右向左比较 的方法,同时应用到了两种启发式规则,即坏字符规则 和好后缀规则 ,来决定向右跳跃的距离。  BM算法的基本流程: 设文本串T,模式串为P。首先将T与P进行左对齐,然后进行从右向左比较 ,如下图所示:       若是某趟比较不匹配时,BM算法就采用两条启发式规则,即坏字符规则 和好后缀规则 ,来计算模...

2010-07-29 00:59:00 834

原创 Linux 的 Spinlock 在 MIPS 多核处理器中的设计与实现

<br />Spinlock 在 Linux 中被广泛应用于解决多核处理器之间访问共享资源的互斥问题,本文以 MIPS 多核处理器为例,介绍了 Spinlock 的设计与实现,以及 Spinlock 的不足与扩展。<br />引言<br />随着科技的发展,尤其是在嵌入式领域,高性能、低功耗的处理器成为众多厂商追逐的目标,但是由于技术和工艺的瓶颈,试图在单核处理器上达到这样的目标变得越发困难,于是人们提出了多核处理器的概念。多核处理器的核心思想是一个处理器中包含若干个核(或线程),所有核(或线程)之间共

2010-07-03 20:23:00 969

原创 IP报文分片重组的方法

一种基于网络处理器实现IP报文分片重组的方法,包括以下步骤:创建哈希索引表;分配两片用于存储分片IP报文的缓冲存储区;从接收到的一个新的IP分片报文的IP首部中提取源IP地址、目的IP地址、标识、片偏移和长度信息;申请一个哈希单元;从其中一片缓冲存储区中申请一个缓冲存储单元;将IP首部保存到所述的缓冲存储单元中;接收后续的IP分片报文,根据该IP分片报文的片偏移信息将该分片报文的数据净

2010-04-30 01:19:00 9613 1

原创 浅析:setsockopt()改善程序的健壮性

主  题: 浅析:setsockopt()改善程序的健壮性 作  者: gdy119 (夜风微凉) (此篇为转贴,向夜风微凉致谢)1. 如果在已经处于 ESTABLISHED状态下的socket(一般由端口号和标志符区分)调用closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,S

2010-04-30 01:17:00 638

原创 IP协议报文格式与分包重组

IP报文体: |------------->1616<--------------| 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 -+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- | vesion| IH

2010-04-30 01:15:00 3408 1

原创 中断处理的tasklet(小任务)

中断服务程序一般都是在中断请求关闭的条件下执行的,以避免嵌套而使中断控制复杂化。但是,中断是一个随机事件,它随时会到来,如果关中断的时间太长,CPU就不能及时响应其他的中断请求,从而造成中断的丢失。因此,Linux内核的目标就是尽可能快的处理完中断请求,尽其所能把更多的处理向后推迟。例如,假设一个数据块已经达到了网线,当中断控制器接受到这个中断请求信号时,Linux内核只是简单地标志数据到来了,然

2010-04-30 01:13:00 981

原创 IP分片

链路层具有最大传输单元MTU这个特性,它限制了数据帧的最大长度,不同的网络类型都有一个上限值。以太网的MTU是1500,你可以用 netstat -i 命令查看这个值。如果IP层有数据包要传,而且数据包的长度超过了MTU,那么IP层就要对数据包进行分片(fragmentation)操作,使每一片的长度都小于或等于MTU。我们假设要传输一个UDP数据包,以太网的MTU为1500字节,一般IP首部为2

2010-04-30 01:04:00 10057 4

原创 TCP/IP原理、基础以及在Linux上的实现

导言:本篇作为理论基础,将向我们讲述TCP/IP的基本原理以及重要的协议细节,并在此基础上介绍了TCP/IP在LINUX上的实现。 OSI参考模型及TCP/IP参考模型OSI模型(open system interconnection reference model)是基于国际标准化组织(ISO)的建议而发展起来的,它分为如图3-1所示的七层。当卫星和无线网络出现以后,现有的协议在和这些网络互联时

2010-04-25 23:39:00 972

原创 CCNA课堂精简笔记 1

网络的三层架构:    1.接入层: 提供网络接入点,相应的设备端口相对密集. 主要设备:交换机,集线器.    2.汇聚层: 接入层的汇聚点,能够提供路由决策.实现安全过滤, 流量控制.远程接入. 主要设备:路由器.    3.核心层: 提供更快的传输速度, 不会对数据包做任何的操作    ===================================================

2010-04-25 23:19:00 701

原创 CCNA课堂精简笔记 3

实验:    1. 配置ACL拒绝london去访问Denver    采用标准:    access-list 1 deny host 10.3.3.1    access-list 1 permit any    隐藏:access-list 1 deny any    2. 配置ACL拒绝london去Ping通Denver(1)       配置ACL允许london去telnet到Den

2010-04-25 23:18:00 548

原创 CCNA课堂精简笔记 4

广域网:    用于连接远程站点.    广域网的类型与封装协议:    1.专线: PPP, HDLC, SLIP    2.电路交换: PPP, HDLC, SLIP    3.包交换: X.25, Frame-Relay, ATM    =================================================================    HDLC:   

2010-04-25 23:17:00 580

原创 TCP状态机、标志位、序列号学习(一)

       最简单的TCP状态机演变,当然是大学时期,几乎人人都知道的TCP三次握手:       SYN->SYN,ACK->ACK       很显然,上面的说法过于简单了,如果对TCP的理解,仅仅局限于此的话,很难在协议分析中获取更多的线索。很有必要详细了解一下,看这幅图先:       很复杂的状态转换,是吧?三次握手,呵呵,理解的过于肤浅了,握手确实只有

2010-04-19 00:19:00 2859 2

原创 数据链路层

数据链路层主要解决相邻两个节点间的通信问题,它负责将源节点网络层上的数据传输到目的节点的网络层上。所谓相邻是指两个节点通过一条物理信道直接相连。 1. 数据链路层的设计问题按照网络的分层模型,每一层都是要利用其下层提供的服务来为其上层提供服务。数据链路层从物理层获得的服务是原始的比特流传输服务,而比特流在传输的过程中是会出错的,因此检测和纠正这些错误使得网络层可以不用关心传输错误,

2010-04-19 00:16:00 4686

原创 什么是TCP 三次握手及为什么进行三次握手?

 TCP 连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP 窗口大小信息。以下步骤概述了通常情况下客户端计算机联系服务器计算机的过程:1. 客户端向服务器发送一个SYN置位的TCP报文,其中包含连接的初始序列号x和一个窗口大小(表示客户端上用来存储从服务器发送来的传入段的缓冲区的大小)。2. 服务器收到客户端发送过来的SYN报文后,向客户端发送

2010-04-18 23:55:00 1884

原创 TCP segment of a reassembled PDU

 今天利用windows查找功能对网络上的一个共享文件夹里的内容进行查找,发现查找网络文件时流量巨大。好奇用wireshark抓包发现wireshark Info栏里有很多“TCP segment of a reassembled PDU”提示信息。不解百度了一下发现大家都在询问这个问题网上并没有很好的解答。想到“TCP segment of a reassembled PDU”只是wir

2010-04-18 23:18:00 683

原创 IP头部结构

转自:http://www.cnblogs.com/tuyile006/archive/2006/12/25/603185.html        IPv4首部一般是20字节长。在以太网帧中,IPv4包首部紧跟着以太网帧首部,同时以太网帧首部中的协议类型值设置为080016。 IPv4提供不同,大部分是很少用的选项,使得IPv4包首部最长可扩展到60字节(总是4个字

2010-04-18 22:59:00 760

原创 UDP协议和TCP协议的区别

TCP协议的中文名称是 传输控制协议 。而UDP协议的中文名称是 用户数据报协议 。  TCP协议是互联网发展过程中非常重要的一个协议,当使用TCP协议作为底层协议时,他能够保证你发送的数据按照一定的时序到达目的地,并且目的地会根据TCP协议的控制数据来校验数据的完整性和正确性。同时TCP协议在网络流量比较拥堵的时候,可以控制数据的流量来防止丢包的发生。需要了解,TCP协议是一个非常严谨的

2010-04-17 00:15:00 3615

原创 TCP的服务流程

        TCP协议提供的是可靠的、面向连接的传输控制协议,即在传输数据前要先建立逻辑连接,然后再传输数据,最后释放连接3个过程。TCP提供端到端、全双工通信;采用字节流方式,如果字节流太长,将其分段;提供紧急数据传送功能。     尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。  面向连接意

2010-04-17 00:14:00 1884 1

原创 私有IP地址范围

个人号码属于为私有使用预留的其中一个IP地址范围由互联网标准小组, IP地址被认为私有。 这些私有IP地址范围存在:         10.0.0.0~10.255.255.255 169.254.0.0~169.254.255.255 172.16.0.0~172.31.255.255 192.168.0.0~192.168.255.255 私有IP地址在

2010-04-17 00:11:00 4204

原创 NAT的类型

NAT设置可分为静态地址转换、动态地址转换、复用动态地址转换三种。静态地址转换将内部本地地址与内部合法地址进行一对一的转换,且需要指定和哪个合法地址进行转换。静态地址转换经常在一个固定的外部的IP地址访问一内部主机情况下使用。动态地址转换也是将内部本地地址与内部合法地址一对一的转换,但是动态地址转换是从内部合法地址池中动态地选择一个未使用的地址来对内部本地地址进行转换的。而一旦连接断开

2010-04-17 00:10:00 929

原创 网络地址转换(NAT)的实现

在配置网络地址转换的过程之前,首先必须搞清楚内部接口和外部接口,以及在哪个外部接口上启用NAT。通常情况下,连接到用户内部网络的接口是NAT内部接口,而连接到外部网络(如Internet)的接口是NAT外部接口。   1).静态地址转换的实现   假设内部局域网使用的lP地址段为192.168.0.1~192.168.0.254,路由器局域网端(即默认网关)的IP地址为192.168.

2010-04-17 00:09:00 1554

原创 交换机VLAN配置基础及实例

有关VLAN的技术标准IEEE 802.1Q早在1999年6月份就由IEEE委员正式颁布实施了,而且最早的VLNA技术早在1996年Cisco(思科)公司就提出了。随着几年来的发展,VLAN技术得到广泛的支持,在大大小小的企业网络中广泛应用,成为当前最为热门的一种以太局域网技术。本篇就要为大家介绍交换机的一个最常见技术应用--VLAN技术,并针对中、小局域网VLAN的网 络配置以实

2010-04-17 00:07:00 791

原创 默认路由

     默认路由是一种特殊的静态路由,指的是当路由表中与包的目的地址之间没有匹配的表项时路由器能够做出的选择.如果没有默认路由器,那么目的地址在路由表中没有匹配表项的包将被丢弃. 默认路由在某些时候非常有效,当存在末梢网络时,默认路由会大大简化路由器的配置,减轻管理员的工作负担,提高网络性能.  默认路由配置方法(参考下图)  默认路由和静态路由的命令格式一样。只是把目的地ip和子网掩码改成

2010-04-17 00:06:00 1974

原创 IMAP

Internet Message Access Protocol(缩写为IMAP,以前称作交互邮件访问协议)是一个应用层协议,用来从本地邮件客户端(如Microsoft Outlook、Outlook Express、Foxmail、Thunderbird)访问远程服务器上的邮件。IMAP和POP3(Protocol Of Post version 3,邮局协议第三版)是邮件访问最为普遍的

2010-04-16 23:56:00 848

原创 IP组播

IP组播(IP multicasting)是对硬件组播的抽象,是对标准IP网络层协议的扩展。它通过使用特定的IP组播 地址,按照最大投递的原则,将IP数据报传输到一个组播群组(multicast group)的主机集合。它的基本方 法是:当某一个人向一组人发送数据时,它不必将数据向每一个人都发送数据,只需将数据发送到一个特定的 预约的组地址,所有加入该组的人均可以收到这份数据。这样对发送者而言,数

2010-04-16 23:52:00 718

原创 应用业务级别(CoS)

一、什么是IP CoS?    对于IP CoS的叫法,学术界一直争论不休,但不管怎么定义,IP CoS功能是网络区分不同应用并进行差别对待的功能的最常用名称。CoS只不过是对具有某些特性的数据包进行优先处理。比如,融合网络应确保话音数据包按 照以下方式进行处理:在时延、抖动与丢包指标的容限内将语音数据包送至目的地。为了做到这一点,网络可能必须延迟,甚至丢掉非话音业务。这种做法是不得已 而为之,但

2010-04-16 23:49:00 2164

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除