为什么会有tcp/ip 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样.计算机使用者意识到,计算机只是单兵作战并不会发挥太大的作用.只有把它们联合起来,电脑才会发挥出它最大的潜力.于是人们就想方设法的用电线把电脑连接到了一起. 但是简单的连到一起是远远不够的,就好像语言不同的两个人互相见了面,完全不能交流信息.因而他们需要定义一些共通的东西来进行交流,TCP/IP就是为此…
tcp/ip学习笔记-TCP 彭会锋 报文发送采用的是tcp_output函数,…
这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息. IP协议 IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输.要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制--这被认为是上层协议--TCP或UDP要做的事情.所以这也就出现了TCP是一个可靠的协议,而U…
把这三个协议放到一起学习是因为这三个协议处于同一层(网络层协议),ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据信息. IP协议 IP协议是TCP/IP协议的核心,所有的TCP,UDP,IMCP,IGCP的数据都以IP数据格式传输.要注意的是,IP不是可靠的协议,这是说,IP协议没有提供一种数据未传达以后的处理机制--这被认为是上层协议--TCP或UDP要做的事情.所以这也就出现了TCP是一个…
事业无穷年 -- 韩愈 利用窗口控制提高速度: TCP传输数据是,以一个段为单位(每次发送一个数据包),每发一个段需要一次确认应答,这样就难免存在这样的缺点:包的往返时间越长,通信性能就越低. 为解决这个问题,牛人们提出了窗口的概念.即使往返时间较长的情况下,它也能控制网络性能的下降. 使用窗口后,发送端发送一个段之后,没有必要等到收到对端针对这个段的ACK之后再发送下一个包,而是以更大的单位进行ACK. 窗口大小指 无需等待ACK而可以继续发送数据的最大值,下图所示的窗口为4个段,每个段的大小…
       家庭应该是爱.欢乐和笑的殿堂.--日 木村久一        IP属于网络层,下一层时数据链路层,在数据链路层,不同类型的数据链路的最大传输单元(MTU)都不尽相同.例如,连接两个路由器的通路可以看作时一个链路.从而 ,网络层的数据到了数据链路层之后,可能会出现这种情况:数据包太大,大于数据链路层的MTU,这时就需要进行拆包了. 下图展示了一些类型的数据链路的MTU: IP报文的分片与重组: 下图,给出了一个例子:某计算机发出一个数据包,大小为4342字节,但是以太网的默认MTU是…
IP(internet protocol, 网际协议) IP相当于OSI参考模型中的第三层 -- 网络层. --网络层的下一层--数据链路层的主要作用是在 同一种数据链路 的节点之间进行包传递,而一旦跨越多种数据链路,就需要借助网络层. 网络层 和数据链路层的关系: 数据链路层负责两个直连设备之间的通信, 作为网络层的IP负责实现 没有直连的两个网络层 之间的通信. IP地址: 之前介绍过数据链路中的MAC地址(网卡地址),其作用是区分同一个链路中的不同的计算机.作为网络层的IP也有这种地址信息…
人的灵魂来自一个完美的家园,那里没有任何污秽和丑陋,只有纯净和美丽.----大鱼海棠 1.通信媒介与数据链路 计算机之间通过各种电缆相互连接. 2.网卡 任何一台计算机接入网络都需要网卡,又称网络适配器,LAN卡. 3.中继器 位于OSI参考模型的第一层--物理层面上延长网络的设备. 4. 二层交换机 (网桥) 网桥在OSI模型的第二层--数据链路层 连接两个设备.以太网等网络中经常使用的交换集线器(Hub),现在也基本上属于网桥的一种,Hub中连接电缆的每个端口都能提供类似网桥的功能. 5.三…
时间是变化的财富.时钟模仿它,却只有变化而无财富. -- 泰戈尔 以太网(Ethernet)一词源于Ether(以太), 是介质的意思.在爱因斯坦哥们提出量子力学之前,人们普遍认为宇宙空间充满以太,并以波的形式传送光. 它是一种使用最广泛的数据链路. 以太网最早是由美国的几家公司设计的通信方式,当时命名为Ethernet,之后,IEEE802.3委员会将其规范化,但是两者之间对帧的定义有所不同.    人们一般称IEEE802.3所规范的以太网为802.3以太网,称一般的以太网叫做DIX以太网.…
"在你生命的最初30年中,你养成习惯:在你生命的最后30年中,你的习惯决定了你."---- Steve Jobs TCP/IP对于OSI参考模型的数据链路成及以下部分(物理层)没有做定义.但是,数据链路的知识对于深入理解网络起着至关重要的作用. 数据链路层的协议定义了通过通信媒介互联的设备之间的传输的规范.通信媒介包括双绞线电缆,光纤,电波等介质. 计算机以0和1表示信息,嗯安儿实际的通信媒介之间踔厉的是电压的高低,光的闪灭等信号,进行转换的正式物理层.数据链路层处理的数据也不是单纯的…
"五月的风慢慢地吹过湖面,泛起波浪层层,一只鸟儿飞过来,在我面前婉转歌唱" TCP/IP是当今计算机网络世界使用最为广泛的协议.该方面的知识对于那些想做网络编程的人来说是只至关重要的! 两种模型在分层模块上略有差异,OSI参考模型注重 通信协议必要的功能是什么,而TCP/IP协议更强调 在计算机上实现协议应该开发哪一种程序! 设备驱动程序与网络接口--------------------- 指的应该就是网卡及其自己的驱动程序吧. 互联网层------------------------…
数据链路层有三个目的: 为IP模块发送和接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RARP请求和接收RARP应答 ip大家都听说过.至于ARP和RARP,ARP叫做地址解析协议,是用IP地址换MAC地址的一种协议,而RARP则叫做逆地址解析协议,在tcp/ip协议的后面章节会介绍它们(在局域网里面用ARP协议可以很容易的搞瘫痪网络哦) 数据链路层的协议还是很多的,有我们最常用的以太网(就是平时我们用的网卡)协议,也有不太常见的令牌环,还有FDDI,当然,还有国…
静态IP选路 一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由.这里就不重复了.首先来看看一个简单的系统路由表. Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.11.0 * 255.255.255.0 U 0 0 0 eth0 169.254.0.0 * 255.255.0.0 U 0 0 0 eth0 default 192.168…
1.TCP/IP 互联网是由许多独立发展的网络通信技术融合而成的,能够使它们不断融合并实现统一的正式TCP/IP技术,TCP/IP使通信协议的统称. TCP/IP协议模型(Transmission Control Protocol/Internet Protocol),包含了一系列构成互联网基础的网络协议,是Internet的核心协议. 概念:分组交换协议 分组交换是指将大数据包分割成一个个的小包(Packet),进行传输.类似寄邮件,计算机通信会在每一个Packet的头部(报文首部)加入 源主…
                                                        用最多的梦面对未来   -- 李嘉诚 在某段时间,若对网络资源的需求超过了该资源所能提供的可用部分,网络的性能就要变化,这种情况叫做拥塞. 在TCP的窗口控制下,发送端一次发送的数据量为窗口大小,在网络状态不好的情况下,一下子发送过多的数据,可能会导致网络瘫痪. 为了应对这种情况,TCP需要对发送端发送到网络中的数据量进行控制. 拥塞控制 和 流(量)控制的差别: 所谓拥塞控制就是防止…
TCP充分实现了数据传输时各种控制功能,可以进行丢包时的重发控制,还可以对次序乱掉的包进行顺序控制,这些在UDP中都是没有的.UDP是一种没有复杂控制,提供面向无连接通信服务的一种协议.TCP是面向有连接的通信协议,只有在取人对端存在的情况下才会发送数据,从而可以控制通信流量的浪费. 知识点1:TCP通过序列号和确认应答提高可靠性: 在 TCP中当发送端的数据到达接受主机时,接收主机会返回一个已经收到消息的通知,这个消息叫做确认应答(ACK).ACK中携带着一个信息:告诉发送端下一个应该发的包的…
只要明天还在,我就不会悲哀,冬雪终会悄悄融化,春雷定将滚滚而来.----<只要明天还在>,汪国真 全局地址,私有地址 , 一种为解决IP地址不足而产生的技术. 起初 ,互联网中的任何一台主机或路由器必须有一个唯一的IP地址,一旦出现IP地址重复的情况,会影响正常的通信.然而,随着互联网的普及,IP地址不足的问题日趋严重. 于是就出现了这种技术. 这种技术不要求为每一台主机或路由器分配一个固定的IP地址,而是要在必要的时候为其分配唯一的IP地址. 尤其对于那些没有连接互联网的独立网络中的主机,只…
现在,我是蔚蓝的 :在此岸或彼岸,我都是蔚蓝的.  ---李瑾 IP对应的是OSI模型中的网络层,TCP对应的是传输层.每一个参与通信的主机都会有一个IP地址. IP地址(IPv4地址)含4个字节,每个字节8bits.如果将其转换为整数,2^32 =4 294 967 296,从计算结果来看最多允许43亿台计算机连接到互联网.但是,每台主机可能有多个网卡,每一个网卡都需要设置IP地址,通常一块网卡只设置一个IP,但是也可以配置多个.此外,一台路由器通常会配置两个以上的网卡,因此可以设置两个以上的…
"他强由他强,清风拂山岗.他横由他横,明月照大江.世间诸事,敞开心扉,顺其自然." -- 张大千 地址具有两个特性: 1:唯一性 同一个通信网络中的任意两个通信主体不能具有相同的地址. 2:层次性 当通信网络中的地址很多很多时,需要考虑快速地找到一个地址,这是层次性就比较重要了.IP地址和MAC地址中,只有IP地址使用了分层. 引申:MAC地址与IP地址: MAC(Media Access Control或者Medium Access Control)地址,译为媒体访问控制,或称为 物…
网络通信中有多中分类方法: )分组较短.出错几率降低,每次重发的数据量也降低,不仅提高了可靠性,也降低了时延.缺点:(1)因为数据进入交换节点后要经历存储转发这一过程,从而引起的转发时延(包含接受分组.检验正确性.排队.发送时间等),并且网络的通信量越大,造成的时延就越大.实时性较差.(2)分组交换仅仅适用于数字信号. (3)分组交换可能出现失序,丢失或反复分组.分组到达目的节点时.对分组按编号进行排序等工作.添加了麻烦. 3.根据收发端数量分类: 根据目标地址的个数和后续行为进行分类: 1)单…
协议的分层: 为解决不同计算机之间的通信,ISO(International Organization for Standards)指定了一个国际标准OSI(Open Systems Interconnection,开放式系统互联).现在OSI虽然没有得到普及,但是提出的OSI参考模型常常被用于网络协议的制定中. (TCP/IP并非ISO所制定的标准,而是由IETF(Internet Engineering Task Force)所建议的,致力于推进标准化作业的一种协议.) OSI参考模型将通信…
"如果错过太阳时你流了泪,那么你也要错过群星了."--- 泰戈尔 前导码(Preamble): 最前面时8个字节的前导码,表示一个以太网帧的开始. 另外,前导码的最后两个比特是"11",称为SFD(Start Frame Delimiter). 在SFD之后就是 以太网帧的本体啦. 以太网帧的本体部分: 本体的前端是数据的首部,总共14个字节,包括目标6字节的mac地址,6字节的源mac地址,以及2个字节的上一层(互联网层)协议类型(例如IP,ARP).紧随首部之后…
"一位如蝴蝶般美丽的女子向我飞来,翩翩的舞姿如同云端轻盈的叶儿." ---------------------------------------------------------------------------------------------------------- 数据包首部: 每个分层都会对自己发送的数据附加一个首部,首部中包含了发送的目标地址等信息.  从上一层收到的包全部被当做本层的数据. 电子邮件发送例子: 1 应用程序处理(应用层): 启动邮件程序,写好邮件,…
1 TCP的服务 尽管TCP和UDP都使用相同的网络层(IP),TCP却向用户提供一种面向连接的,可靠地字节流服务.两个使用TCP的应用,在彼此交换数据之前必须先建立一个TCP连接,在一个TCP连接中,仅有两方进行通信.TCP通过以下方式来提供可靠性: (1)应用数据被分割成TCP认为最合适发送的数据块. (2)当TCP发送一个段后它启动一个定时器,等待目的端确认收到这个报文段(超时重传). (3)当TCP收到发自TCP连接另一端的数据,它将发送一个确认. (4)TCP将保持它首部和数据的检验和…
Socket发送和接收数据都是写入和读取mbuf(存储器缓存)来完成的.下面着重介绍下Sendto函数与mbuf的关系: 以UDP协议为例: 1.UDP的输出执行过程: UDP的输出执行过程 2.协议层的m_buf 添加了IP+UDP头部的mbuf 3.插口层端的m_buf 包括插口地址的m_buf                                                                                     包括数据的插口层m_buf 4…
IMCP协议介绍 当传送IP数据包发生错误--比如主机不可达,路由不可达等等,ICMP协议将会把错误信息封包,然后传送回给主机.给主机一个处理错误的机会,这 也就是为什么说建立在IP层以上的协议是可能做到安全的原因.ICMP数据包由8bit的错误类型和8bit的代码和16bit的校验和组成.而前 16bit就组成了ICMP所要传递的信息.书上的图6-3清楚的给出了错误类型和代码的组合代表的意思. 尽管在大多数情况下,错误的包传送应该给出ICMP报文,但是在特殊情况下,是不产生ICMP错误报文的.…
1. 2. >>>   int socket(int af, int type,int protocol);//创建套接字,返回从文件描述表中取出新的索引号(int);AF_INET,SOCK_DGRAM/SOCK_STREAM,0:阻塞式socket int close(int d);/int shutdown(int socket,int direction);//关闭 //将int s套接字转成nonblock void nonblock(int s) {   int flags;…
TCP连接的三次握手: (1)请求短发送一个SYN段指明客户打算连接的服务器的端口,以及初始序号ISN(1415535521),报文段中SYN=1:TCP规定:SYN报文段不能携带数据,但是要消耗一个序号. (2)服务器发回包含服务器初始序号的SYN报文段作为应答(SYN=1  ACK=1).设置确定序号为客户端设置的ISN加1(1415531522),以表示对客户端的SYN报文进行确认,同时为自己选一个初始序号(1823083521),这个报文段同样不能携带数据,但要消耗一个序号. (3)客户…
IEEE802委员会主要指定了以下几种分类: PAN: personal aera network;  LAN: local area network; WAN: wide aera network 蓝牙是使用2.4Ghz频率无线电波的一种标准.根据通信距离有1m,10m,100m三种类型,通信终端最多允许8台设备.实际最大吞吐量为3Mbps. PPP:---------------???没看懂,对于数据链路层的各种分类例如 以太网,ATM还没有建立起概念体系. PPP(point-to-poi…
端到端论点和命运共享其实不应该在底层,差错控制应该在应用程序附近来实现.这是因为考虑了连接,而不是传输的准确,因为差错可以根据某些算法(通信中的滤波等)来恢复,不过在大面积网络出现问题的时候有必要进行网络重组.在传输数据的时候控制不了数据的准确性,即便是可靠的传输也只是网络的尽力而为.因为传输没有功夫管你对错,传输到目的端后,最多也就采取一些定向校验的措施.如果经历而为的传输,发送端通常能够超过接收端的速度生成信息,为了降低速率可以通过控制流量的方式,不过控制了速度并不会影响通信能力. OSI由…