第01章+TCPIP.ppt_第1页
第01章+TCPIP.ppt_第2页
第01章+TCPIP.ppt_第3页
第01章+TCPIP.ppt_第4页
第01章+TCPIP.ppt_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Linux/UNIX网络编程,先修课程,C语言操作系统原理Linux的基本使用Linux高级应用编程,Linux系统基础,软件开发环境最常用编辑工具:vi编译器:gcc,g+gcc编译c程序g+编译c+程序调试器:gdb,计算机网络,计算机网络:把分布在不同地理位置上的,具有独立功能的多台计算机、终端及其附属设备,用通信设备和通信线路连接起来,再配以相应的网络软件,以实现计算机资源共享。,计算机网络发展简史,1.联网的尝试美国军方所研制的半自动地面防空系统(SAGE)IBM公司研制了全美航空定票系统(SABRAI)2.ARPANET的诞生3.多种网络技术的并存各公司自行制定了网络的体系结构标准化备受关注局域网InternetTCP/IP的崛起,计算机网络发展趋势,1.网络向高速发展是一个总的趋势速度从B到M到G。2.网络向综合服务方向发展文字,图像,声音,视频。3.网络为不同的应用提供不同的服务质量带宽、延迟、抖动,计算机网络的定义,按照计算机网络界权威人土特南鲍姆(AndrewSTanenbaum)的定义,计算机网络是一些相互独立的计算机互连集合体。若有两台计算机通过通信线路(包括无线通信)相互交换信息,就认为是互连的。而相互独立或功能独立的计算机是指网络中的一台计算机不受任何其他计算机的控制(如启动或停止)。,计算机网络的功能,数据交换和通信Email、FTP等资源共享硬件共享软件共享数据共享系统的可靠性分布式网络处理和均衡负荷,计算机网络的构成,计算机网络在逻辑功能上可以划分为两部分,一部分的主要工作是对数据信息的收集和处理,另一部分则专门负责信息的传输,ARPANET把前者称为资源子网,后者称为通信子网。,计算机网络的类型,按跨度分类广域网(WAN,WideAreaNetwork)局域网(LAN,LocalAreaNetwork)城域网(MAN,MetropolitanAreaNetwork)按网络采用的传输技术分类星型、环型、树型、网状型按管理性质分类公用网专用网利用公用网组建专用网,数据通信基础,数据通信系统的基本组成三个基本要素:信源、信宿和信道,数据通信基础,数字通信与模拟通信,数据通信基础,信道的基本参数信道带宽:信道可以不失真地传输信号的频率范围。为不同应用而设计的传输媒体具有不同的信道质量,所支持的带宽有所不同。信道容量:信道在单位时间内可以传输的最大信号量,表示信道的传输能力。信道容量有时也表示为单位时间内可传输的二进制位的位数(称信道的数据传输速率,位速率),以位/秒形式予以表示,简记为bps。数据传输速率(bps):信道在单位时间内可以传输的最大比特数。信道容量和信道带宽具有正比的关系:带宽越大,容量越大。局域网带宽(传输速率)一般为10Mbps、100Mbps、1000Mbps,而广域网带宽(传输速率)一般为64Kbps、2Mbps、155Mbps、2.5Gbps等。差错率/误码率:描述信道或者数据通信系统(网络)质量的一个指标。是指数据传输系统正常工作状态下信道上传输比特总数与其中出错比特数的比值。差错率/误码率(Pe)=出错比特数/传输比特数,数据通信基础,数据传送方式根据收发双方信息交换的方向性,数据在信道上的传输方式有单工、半双工和全双工之分。,数据通信基础,数据的编码方式公共电话线一般为传输模拟信号而设计的,为了利用现有的电话网进行数据传输,首先需要将数字数据信号转换为模拟信号。为此,选取音频范围某一频率的正(余)弦模拟信号作为载波,用以运载所要传送的数字数据信号,其方法是:用要传送的数字数据信号改变载波的幅度(调幅载波)、频率(调频载波)或相位(调相载波),然后使之在信道上传送,到达接收点后再将数字数据信号从载波上取出。这种将数字数据信号加到载波上去的过程称为调制,而从载波上取出信号的过程称为解调。调制和解调的任务一般通过调制解调器(Modem)来实现。,数据通信基础,三种方式:调幅、调频、调相。,数据通信基础,数据信号的传输方式并行传输字符编码的各位(比特)同时传输,如图1-8所示。并行传输的特点:传输速度快:一位(比特)时间内可传输一个字符;通信成本高:每位传输要求一个单独的信道支持;因此如果一个字符包含8个二进制位,则并行传输要求8个独立的信道的支持;不支持长距离传输:由于信道之间的电容感应,远距离传输时,可靠性较低。,数据通信基础,数据信号的传输方式串行传输主机A主机B10011010图1-9串行传输串行传输是将组成字符的各位串行地发往线路。如图1-9所示。特点传输速度较低,一次一位;通信成本也较低,只需一个信道。支持长距离传输,目前计算机网络中所用的传输方式均为串行传输。,多路复用与集中传输,多路复用的目的在于在数据传输时充分利用昂贵的通信线路,尽可能地容纳较多的用户和传输较多的信息。目前主要有3种信道复用方式:频分复用、时分复用和波分复用。,数据交换,数据交换是指在数据通信时利用中间节点将通信双方连接起来。作为交换设备的中间节点仅执行交换的动作,不关心被传输的数据内容,将数据从一个端口交换到另一端口,继而传输到另一台中间节点,直至目的地。整个数据传输的过程被称为数据交换过程。数据交换方式包括线路交换(电路交换)、报文交换和分组交换。,数据交换,1.线路交换线路交换又称为电路交换,它类似于电话系统,希望通信的计算机之间必须事先建立物理线路或者物理连接。线路交换的过程整个线路交换的过程包括建立线路、占用线路并进行数据传输、释放线路三个阶段。线路交换的特点独占性:建立线路之后、释放线路之前,即使站点之间无任何数据可以传输,整个线路仍不允许其它站点共享,因此线路的利用率较低,并且容易引起接续时的拥塞。实时性好:一旦线路建立,通信双方的所有资源(包括线路资源)均用于本次通信,除了少量的传输延迟之外,不再有其它延迟,具有较好的实时性;线路交换设备简单,不提供任何缓存装置;用户数据透明传输,要求收发双方自动进行速率匹配。,数据交换,报文交换报文交换原理报文交换(存储转发报文交换)的原理是:中间节点由具有存储能力的计算机承担,用户信息可以暂时保存在中间节点上。报文交换无需同时占用整个物理线路。如果一个站点希望发送一个报文(一个数据块),它将目的地址附加在报文上,然后将整个报文传递给中间节点;中间节点暂存报文,根据地址确定输出端口和线路,排队等待,当线路空闲时再转发给下一节点,直至终点。报文交换的特点:在中间节点,采用“接收存储转发”数据;不独占线路,多个用户的数据可以通过存储和排队共享一条线路;无线路建立的过程,提高了线路的利用率;可以支持多点传输。一个报文传输给多个用户,在报文中增加“地址字段”,中间节点根据地址字段进行复制和转发;中间节点可进行数据格式的转换,方便接收站点的收取;增加了差错检测功能,避免出错数据的无谓传输等。,数据交换,分组交换分组交换是对报文交换的改进,是目前应用最广的交换技术。它结合了线路交换和报文交换两者的优点,使其性能达到最优。分组交换类似于报文交换,但它规定了交换设备处理和传输的数据长度(我们称之为分组),将长报文分成若干个固定长度的小分组进行传输。不同站点的数据分组可以交织在同一线路上传输。提高了线路的利用率。由于分组长度的固定,系统可以采用高速缓存技术来暂存分组,提高了转发的速度。分组交换实现的关键是分组长度的选择。分组越小,冗余量(分组中的控制信息等)在整个分组中所占的比例越大,最终将影响用户数据传输的效率;分组越大,数据传输出错的概率也越大,增加重传的次数,也影响用户数据传输的效率。,数据交换,LAN物理拓扑结构,字节序,不同的处理器会使用不同的方式来解释多字节数字。32bit整数0 x01020304网络字节序就是指大端如何写程序确定当前计算机是大端还是小端机器?,01,02,03,04,小端/小尾,大端/大尾,04,03,02,01,低地址,高地址,网络中的几类地址,物理地址:即MAC地址逻辑地址:即IP地址端口地址:应用程序端口号域名地址:取代IP地址记忆,物理地址,48位:24位OUI,24位由厂商分配平面地址,无结构全球唯一局部范围寻址存在于数据链路层,IP地址,IP地址标识着网络一个主机的位置。每个IP地址都是由32位(或128位)组成,分成两部分:网络号、主机号。全球唯一,寻址容易两种表示形式:二进制(计算机内部)、点分十进制(便于记忆),IP地址分类,0,NetID,10,110,NetID,1110,MulticastAddress,HostID,NetID,HostID,HostID,A,B,C,D,8bits,8bits,8bits,8bits,0126,128191,192223,224239,A类:以第一字节的0开始,7位表示网络号(0126),后24位表示主机号。B类:以第一字节的10开始,14位表示网络号(128191),后16位表示主机号。C类:以第一字节的110开始,21位表示网络号(192223),后8位表示主机号。D类:以第一字节的1110开始,用于因特网多播。E类:以第一字节的11110开始,保留为今后扩展使用。00000000(0)、01111111(127)、11111111(255)有特殊的用法。,端口地址,process,process,process,process,process,process,IP地址平面,A机,B机,端口地址(cont.),TCP和UDP使用16位的端口号(用无符号整型表示)为防止端口使用的混乱,将端口分为以下三类:知名/周知端口:01023,由IANA统一控制注册的端口:102449151,这些端口虽不由IANA控制,但IANA登记这些端口的使用动态或私有的端口:4915265535在Linux中使用周知端口需要root权限。,网络中通信双方,需要知道对端IP地址对端哪个进程处理需要由端口来确定网络中通信双方由以下四元组唯一确定:(本地IP地址、本地端口号、远程IP地址、远程端口号),DNS:域名地址,层次名字空间便于记忆和使用计算机通信时无法使用域名地址解析:名字到IP地址的解析(gethostbyname)IP地址到域名的解析(gethostbyaddr),客户/服务器例子WWW服务,互联网,基本的C/S服务模型,简单的客户/服务器模型,C,S,1、数据请求,2、数据响应,无连接,3、数据请求,4、数据响应,1、连接请求,2、连接响应,5、关闭请求,6、关闭响应,C,S,复杂的客户/服务器模型,WEB服务器和客户端之间的数据传输过程,OSI与TCP/IP,网络编程接口,通过路由器连接的两个网络,FTP客户,TCP,IP,以太网驱动程序,FTP服务器,TCP,IP,令牌环驱动程序,令牌环,以太网驱动程序,令牌环驱动程序,IP,FTP协议,TCP协议,IP协议,IP协议,以太网,客户,服务器,数据进入协议栈时的封装,用户数据,用户数据,App头部,用户数据,TCP头部,用户数据,TCP头部,IP头部,用户数据,TCP头部,IP头部,以太网头部,以太网尾部,以太网帧,401500字节,FTP客户,TCP,IP,以太网驱动程序,TCP段,IP分组,以太网数据帧分用过程,以太网帧,ARP,RARP,IP,ICMP,IGMP,TCP,UDP,应用程序,应用程序,应用程序,应用程序,进入的帧,根据以太网首部中的帧类型进行分用,根据IP首部中的协议类型进行分用,根据TCP或UDP首部中的端口号进行分用,UDP:用户数据报协议,UDP提供无连接服务UDP缺乏可靠性支持,应用程序必须实现:确认、超时、重传、流控等UDP面向记录服务,UDP数据报格式,源端口,目的端口,长度,校验和,数据,0,15,31,#ifdef_FAVOR_BSDstructudphdru_int16_tuh_sport;/*sourceport*/u_int16_tuh_dport;/*destinationport*/u_int16_tuh_ulen;/*udplength*/u_int16_tuh_sum;/*udpchecksum*/;#elsestructudphdru_int16_tsource;u_int16_tdest;u_int16_tlen;u_int16_tcheck;#endif,TCP:传输控制协议,TCP是面向连接的。TCP提供可靠性,实现了丢失重传。RTT的估算。TCP通过给所发送数据的每一个段管理一个序列号进行排序。TCP提供流量控制和拥塞控制:通告窗口、拥塞窗口。TCP的连接是全双工的。,TCP协议数据段格式,HLEN,窗口,序列号,确认号,源端口,目的端口,保留,码位,校验和,紧急指针,选项,填充字节,数据,URG,ACK,PSH,RST,SYN,FIN,0,15,31,7,首部,数据区,TCP协议数据段格式(续),structtcphdrWORDSourPort;WORDDestPort;DWORDSeqNo;DWORDAckNo;BYTEHLen;BYTEFlag;WORDWindow;WORDChkSum;WORDUrgPtr;/*Putoptionshere.*/;,TCP协议数据段格式(续),几个需要说明的字段HLEN:首部长度,以4字节(32位)为单位。tcp数据段首部包括固定和变长两部分;窗口:为通告窗口;URG位:如果使用紧急数据指针,则将这一位设为1ACK位:如果确认序列号有效,则设为1;PSH位:表示”推”数据,如果这一位设置成1,表示希望接收方在接收到这个数据段之后,将它立即传送给高层应用程序,而不是缓存起来。,TCP协议数据段格式(续),RST位:表示请求重置连接。当TCP协议接收到一个不能处理的数据段时,向对方TCP协议发送这种数据段,表示这个数据段所标识的连接出现了某种错误,请求对方TCP协议将这个连接清除。有3种情况可能导致TCP协议发送RST数据段(1)SYN数据段指定的目的端口处没有接收进程等待;(2)TCP协议想放弃一个已经存在的连接;(3)TCP接收到一个数据段,但是这个数据段所标识的连接不存在。接收到RST数据段的TCP协议立即将这条连接非正常断开,并向应用程序报告;,TCP协议数据段格式(续),SYN位:请求建立连接。tcp用这种数据段向对方tcp协议请求建立连接,在这个数据段中,tcp协议将它选择的初始序列号通知对方,并且与对方协议协商最大数据段的大小。FIN位:请求关闭连接。当协议收到对这个数据段的确认后,成功关闭写方向的连接,因为tcp连接是全双工的,在发送了FIN数据段之后,它仍能接收数据,直至对方也发送FIN数据段。紧急指针:如果设置了URG位,这个字段指出紧急数据相对于这个数据段的开始序列号的偏移量。tcp协议只提供一字节的紧急数据,但由于历史原因,紧急指针指向紧急数据的下一个位置。,TCP三路握手,客户,服务器,SocketConnect(阻塞)(主动打开),Socket,bind,listen(被动打开),SYNx,SYNy,ackx+1,acky+1,Accept返回Read阻塞,Connect返回,TCP连接的建立,TCP连接的过程:服务器必须准备好接受外来的连接。通过调用socket,bind,listen函数完成。称为被动打开。客户通过调用connect进行主动打开。这引起客户TCP发送一个SYN分节,告诉服务器客户将在连接中发送的数据的初始序列号。服务器必须确认客户的SYN,同时自己也得发送一个SYN分节。服务器以单个分节向客户发送SYN和对客户的SYN的ACK。客户必须确认服务器的SYN。,TCP连接关闭,客户,服务器,Close主动关闭,被动关闭Read返回0,FINM,ackN+1,Close,ackM+1,FINN,TCP连接终止,TCP一般用四个分节终止一个连接:某个进程首先调用close,这一端的TCP于是发送一个FIN分节,表示数据发送完毕。主动关闭。另一端称为被动关闭。TCP对接收的FIN分节进行确认,并以文件结束标志传递给应用程序。一段时间后,接收到文件结束标志的应用程序调用close,这也导致向对方发送一个FIN分节。接收到这个FIN分节的原发送方TCP对它进行确认。还有一种关闭称为“半关闭”(half-close),CLOSE,LISTEN,SYN_RCVD,SYN_SENT,ESTABLISHED,CLOSE_WAIT,LAST_ACK,FI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论