第1讲网络基础优秀PPT.ppt
第1讲网络基础现在学习的是第1页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院目录l计算机网络概念lOSI/RM参考模型lTCP/IP模型及相关概念l客户/服务器模型及原理现在学习的是第2页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院计算机网络l计算机网络:把分布在不同地理位置上的,具有独立功能的多台计算机、终端及其附属设备,用通信设备和通信线路连接起来,再配以相应的网络软件,以实现计算机资源共享。现在学习的是第3页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院LAN物理拓扑结构现在学习的是第4页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院目录l计算机网络概念lOSI/RM参考模型lTCP/IP模型及相关概念l客户/服务器模型及原理现在学习的是第5页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院OSI Reference ModellOSI/RM Layer ModelApplicationPresentationSessionTransportNetworkData LinkPhysicalApplicationPresentationSessionTransportNetworkData LinkPhysicalNetwork现在学习的是第6页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院Byte OrderinglDifferent computer architectures use different byte ordering to represent multibyte values.l16 bit integer:Low ByteLow ByteHigh ByteHigh ByteHigh ByteHigh ByteLow ByteLow ByteAddress AAddress AAddress A+1Address A+1现在学习的是第7页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院Byte Order and NetworkinglSuppose a Big Endian machine sends a 16 bit integer with the value 2:lA Little Endian machine will think it got the number 512:00000010000000000000000000000010现在学习的是第8页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院目录l计算机网络概念lOSI/RM参考模型lTCP/IP模型及相关概念l客户/服务器模型及原理现在学习的是第9页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院OSI vs TCP/IP应用层表示层会话层传输层网络层数据链路层物理层应用层IPv4,IPv6网络介质层TCPUDPOSI模型TCP/IP模型现在学习的是第10页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院通过路由器连接的两个网络FTP客户TCPIP以太网驱动程序FTP服务器TCPIP令牌环驱动程序令牌环以太网驱动程序令牌环驱动程序IPFTP协议TCP协议IP协议IP协议以太网客户服务器现在学习的是第11页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院数据进入协议栈时的封装用户数据用户数据App头部用户数据TCP头部用户数据TCP头部IP头部用户数据TCP头部IP头部以太网头部以太网尾部以太网帧401500字节FTP客户TCPIP以太网驱动程序TCP段IP分组现在学习的是第12页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院TCP/IP协议族概貌tcpdumpmroutedpingtracerouteAppl.Appl.TCPUDPICMPIGMPIPv4BPFDLPI数据链路ARPRARP现在学习的是第13页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院UDP:用户数据报协议lUDP提供无连接服务lUDP缺乏可靠性支持,应用程序必须实现:确认、超时、重传、流控等lUDP面向记录服务现在学习的是第14页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院UDP数据报格式源端口目的端口长度校验和数据01531#ifdef _FAVOR_BSDstruct udphdr u_int16_t uh_sport;/*source port*/u_int16_t uh_dport;/*destination port*/u_int16_t uh_ulen;/*udp length*/u_int16_t uh_sum;/*udp checksum*/;#elsestruct udphdr u_int16_t source;u_int16_t dest;u_int16_t len;u_int16_t check;#endif现在学习的是第15页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院TCP:传输控制协议lTCP是面向连接的。lTCP提供可靠性,实现了丢失重传。lTCP通过给所发送数据的每一个段管理一个序列号进行排序。lTCP提供流量控制和拥塞控制:通告窗口、拥塞窗口。lTCP的连接是全双工的。现在学习的是第16页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院TCP协议数据段格式HLEN窗口序列号确认号源端口目的端口保留码位校验和紧急指针选项填充字节数据URGACKPSHRSTSYNFIN015317首部数据区现在学习的是第17页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院TCP协议数据段格式(续)struct tcphdr WORD SourPort;WORD DestPort;DWORD SeqNo;DWORD AckNo;BYTE HLen;BYTE Flag;WORD Window;WORD ChkSum;WORD UrgPtr;/*Put options here.*/;现在学习的是第18页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院TCP连接的建立lTCP连接的过程:n服务器必须准备好接受外来的连接。通过调用socket,bind,listen函数完成。称为被动打开。n客户通过调用connect进行主动打开。这引起客户TCP发送一个SYN分节,告诉服务器客户将在连接中发送的数据的初始序列号。n服务器必须确认客户的SYN,同时自己也得发送一个SYN分节。服务器以单个分节向客户发送SYN和对客户的SYN的ACK。n客户必须确认服务器的SYN。现在学习的是第19页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院TCP三路握手客户服务器SocketConnect(阻塞)(主动打开)Socket,bind,listen(被动打开)SYN JSYN K,ack J+1ack K+1Accept返回Read阻塞Connect返回现在学习的是第20页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院TCP连接终止lTCP一般用四个分节终止一个连接:n某个进程首先调用close,这一端的TCP于是发送一个FIN分节,表示数据发送完毕。主动关闭。n另一端称为被动关闭。TCP对接收的FIN分节进行确认,并以文件结束标志传递给应用程序。n一段时间后,接收到文件结束标志的应用程序调用close,这也导致向对方发送一个FIN分节。n接收到这个FIN分节的原发送方TCP对它进行确认。现在学习的是第21页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院TCP连接关闭客户服务器Close主动关闭被动关闭Read返回0FIN Mack N+1Closeack M+1FIN N现在学习的是第22页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院网络中的几类地址l物理地址:即MAC地址l逻辑地址:即IP地址l端口地址l域名地址现在学习的是第23页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院物理地址l48位:24位OUI,24位由厂商分配l平面地址,无结构l全球唯一l局部范围寻址l存在于数据链路层现在学习的是第24页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院IP地址lIP地址标识着网络一个主机的位置。每个IP地址都是由32位(或128位)组成,分成两部分:网络号、主机号。l全球唯一,寻址容易l两种表示形式:二进制(计算机内部)、点分十进制(便于记忆)现在学习的是第25页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院IP地址分类0NetID10110NetID1110Multicast AddressHostIDNetIDHostIDHostIDA AB BC CD D8 bits8 bits8 bits8 bits0127128191192223224239现在学习的是第26页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院lClass Al128 possible network IDslover 4 million host IDs per network IDClass Bl16K possible network IDsl64K host IDs per network IDClass Clover 2 million possible network IDslabout 256 host IDs per network ID现在学习的是第27页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院端口地址processprocessprocessprocessprocessprocessIP地址平面A A机机B B机机机机现在学习的是第28页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院端口地址(cont.)lTCP和UDP使用16位的端口号(用无符号整型表示)l为防止端口使用的混乱,将端口分为以下三类:n“众所周知”的端口:01023,由IANA统一控制n注册的端口:102449151,这些端口虽不由IANA控制,但IANA登记这些端口的使用n动态或私有的端口:4915265535现在学习的是第29页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院网络中通信双方l网络中通信双方由以下四元组唯一确定:n(本地IP地址、本地端口号、远程IP地址、远程端口号)现在学习的是第30页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院DNS:域名地址l层次名字空间l便于记忆和使用l计算机通信时无法使用l域名地址解析:n名字到IP地址的解析(gethostbyname)nIP地址到域名的解析(gethostbyaddr)现在学习的是第31页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院构建分布式应用程序(即网络程序)l网络技术已日渐成为所有软件的一部分;l必须掌握的知识:设计和实现分布式应用程序所用到的原则和技术原则和技术;l分布式计算的一个主要目标:透明性透明性现在学习的是第32页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院标准和非标准的应用协议l标准的应用层协议n属于TCP/IP协议簇n文件传送,电子邮件,远程登录等l非标准的应用层协议n使用TCP/IP进行通信的程序n标准化之后,会成为标准协议现在学习的是第33页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院标准应用协议的例子:TelnetlTELNET:用于远程登录的标准应用协议n定义了双方报文格式n定义了字符在传输时如何编码n定义了控制报文lTELNET的使用简介n一个telnet命令,如:telnet n连接建立后,用户打开一个窗口,用户的任何输入都发送给远程主机lTelnet使用的例子n可以用来访问不同于标准的远程登录的其它服务,用户必须指定端口号。现在学习的是第34页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院应用协议和软件的灵活性l协议的设计是寻找一个适用于多种应用的基本抽象:Telnet是一种基本的交互通信手段,可以适用于多种服务l实现一些服务的时候,尽可能是用标准的应用协议,比如使用telnet协议来通信现在学习的是第35页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院目录l计算机网络概念lOSI/RM参考模型lTCP/IP模型及相关概念l客户客户/服务器模型及原理服务器模型及原理现在学习的是第36页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院客户/服务器例子WWW服务互联网互联网现在学习的是第37页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院客户/服务器例子EMail服务互联网互联网现在学习的是第38页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院客户/服务器模型:动机l符合现实生活中的习惯lTCP/IP仅仅是传输数据的基本机制基本机制l客户/服务器主要解决:通信会聚通信会聚问题n同一时刻双方互发消息通信不可靠同一时刻双方互发消息通信不可靠n通信的一方启动执行后一直等待对方的联系更通信的一方启动执行后一直等待对方的联系更加可靠加可靠n下层协议不必对收到的信息进行响应,减少了下层协议不必对收到的信息进行响应,减少了下层协议的复杂性下层协议的复杂性现在学习的是第39页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院客户/服务器模型:术语和概念l通信发起的方向来区分l客户客户:发起对等通信的应用程序n每次执行都与服务器联系每次执行都与服务器联系n容易构建,往往不需要系统特权容易构建,往往不需要系统特权n属于常规的网络应用程序,如浏览器属于常规的网络应用程序,如浏览器l服务器服务器:等待接收客户通信请求的程序n接收客户的请求接收客户的请求n执行必要的操作执行必要的操作n返回结果给客户返回结果给客户现在学习的是第40页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院服务器特权和复杂性l服务器经常需要访问受操作系统保护的资源:需要系统特权l服务器不能把特权传递给使用服务的客户l服务器需要处理的安全问题:l l鉴别鉴别鉴别鉴别:验证客户身份:验证客户身份l l授权授权授权授权:判断某个客户是否可以使用服务器提供的服务:判断某个客户是否可以使用服务器提供的服务l l数据安全数据安全数据安全数据安全:确保数据不被无意泄漏或者损坏:确保数据不被无意泄漏或者损坏l l保密保密保密保密:防止未经授权访问信息:防止未经授权访问信息l l保护保护保护保护:确保网络程序不能滥用系统资源:确保网络程序不能滥用系统资源l特权特权和并发并发导致了服务器软件的复杂性现在学习的是第41页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院标准和非标准客户软件l标准客户:调用标准TCP/IP服务l非标准客户:调用网点定义的服务(本地定义的应用服务)l区别在于是否和外界环境通信lTCP/IP定义了许多标准的应用服务nTELNET,SMTP,POP,HTTP,FTP现在学习的是第42页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院客户的参数化l提高通用性的客户软件:可以指定服务器地址,也可以指定服务器的服务端口(全参数化客户:fully parameterized client)l参数化n远程主机地址远程主机地址n端口号端口号n其它可选参数其它可选参数n便于测试便于测试现在学习的是第43页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院无连接和面向连接的服务器lUDP:无连接交互n没有可靠保证没有可靠保证n依赖下层系统保证依赖下层系统保证n程序中应该有相应保障措施程序中应该有相应保障措施lTCP:面向连接的交互n提供传输可靠性提供传输可靠性n程序要求简单程序要求简单l选用UDP的情况n下层系统可靠性(例如在局域网环境)下层系统可靠性(例如在局域网环境)n应用要求应用要求n广播或者组播广播或者组播现在学习的是第44页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院充当客户的服务器l一个应用的服务器,对另一个应用是客户l避免这些服务器之间出现循环的依赖关系互联网互联网现在学习的是第45页,共46页互联网络程序设计互联网络程序设计电子科大计算机学院电子科大计算机学院总结l计算机网络基础(包括OSI与TCP/IP)l基本概念(如通信地址等)l客户/服务器模型现在学习的是第46页,共46页