TCP-IP网络编程基础

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

USTCNICTCP/IPSocket网络编程主讲人:杨宇2020/5/10TCP/IPSocket网络编程2/83内容大纲•Internet与TCP/IP协议•TCP/IP协议体系结构与OSI模型•Socket编程接口–WindowsSocket–LinuxSocket•TCP/IP网络程序框架与示例2020/5/10TCP/IPSocket网络编程3/83Internet与TCP/IP协议第一节Internet与TCP/IP协议2020/5/10TCP/IPSocket网络编程4/83Internet的历史•Internet-“冷战”的产物–1957年10月和11月,前苏联先后有两颗“Sputnik”卫星上天–1958年美国总统艾森豪威尔向美国国会提出建立DARPA(DefenseAdvancedResearchProjectAgency),即国防部高级研究计划署,简称ARPA–1968年6月DARPA提出“资源共享计算机网络”(ResourceSharingComputerNetworks),目的在于让DARPA的所有电脑互连起来,这个网络就叫做ARPAnet,即“阿帕网”,是Interne的最早雏形2020/5/10TCP/IPSocket网络编程5/83网络互联促成了TCP/IP协议的产生•早期的ARPAnet使用网络控制协议(NetworkControlProtocol,NCP),不能互联不同类型的计算机和不同类型的操作系统,没有纠错功能•1973年由Kahn和VintonCerf两人合作为ARPAnet开发了新的互联协议。•1974年12月两人正式发表第一份TCP协议详细说明,但此协议有信包丢失时不能得到有效的纠正2020/5/10TCP/IPSocket网络编程6/83网络互联促成了TCP/IP协议的产生•TCP协议分成了两个不同的协议:–用来检测网络传输中差错的传输控制协议TCP–专门负责对不同网络进行互联的互联网协议IP•从此TCP/IP协议诞生•1983年ARPAnet上停止使用NCP,互联网上的主机全部使用TCP/IP协议,TCP/IP协议成为Internet中的“世界语”2020/5/10TCP/IPSocket网络编程7/83Internet与TCP/IP协议第二节TCP/IP协议体系结构与OSI模型2020/5/10TCP/IPSocket网络编程8/83网络的体系结构•网络采用分而治之的方法设计,将网络的功能划分为不同的模块,以分层的形式有机组合在一起。•每层实现不同的功能,其内部实现方法对外部其他层次来说透明,每层向上层提供服务,也可以使用下层提供的服务•网络体系结构即指网络的层次结构和每层所使用协议的集合•两类非常重要的体系结构:OSI与TCP/IP2020/5/10TCP/IPSocket网络编程9/83OSI开放系统互联模型•OSI模型相关的协议已经很少使用,但模型本身非常通用•共有七层应用层数据链路层网络层传输层会话层表示层物理层高层低层2020/5/10TCP/IPSocket网络编程10/83TCP/IP协议族的体系结构•TCP/IP协议是Internet事实上的工业标准。•一共有四层应用层(Telnet、FTP、HTTP、DNS、SMTP等)网络接口和物理层(以太网、令牌环网、FDDI等)网络层(IP、ICMP和IGMP)传输层(TCP和UDP)2020/5/10TCP/IPSocket网络编程11/83TCP/IP协议与OSI参考模型的对应关系应用层物理层数据链路层网络层传输层会话层表示层应用层网络层网络接口与物理层传输层OSI模型TCP/IP协议Telnet、、FTP等TCP与UDPIP、ICMP和IGMP网卡驱动物理接口2020/5/10TCP/IPSocket网络编程12/83TCP/IP协议通信模型客户方FTP程序TCP协议IP协议以太网驱动程序主机A客户方FTP程序TCP协议IP协议以太网驱动程序主机BIP协议以太网驱动程序令牌环网驱动程序路由器AIP协议令牌环网驱动程序以太网驱动程序路由器B以太网以太网令牌环网2020/5/10TCP/IPSocket网络编程13/83数据的封装与传递过程客户数据主机A应用层数据包客户数据FTP头客户数据FTP头TCP头客户数据FTP头TCP头IP头客户数据FTP头TCP头IP头以太网头CRC路由器接收以太网数据帧并根据目标IP地址转发到令牌环网接口客户数据主机B客户数据FTP头客户数据FTP头TCP头客户数据FTP头TCP头IP头客户数据FTP头TCP头IP头令牌网头CRCTCP段IP数据报IP数据报TCP段应用层数据包以太网数据帧令牌环网数据帧发送端数据封装过程接收端数据解封过程2020/5/10TCP/IPSocket网络编程14/83一些基本概念•IP地址•端口号•字节序2020/5/10TCP/IPSocket网络编程15/83IP地址•IP地址是Internet中主机的标识–Internet中的主机要与别的机器通信必须具有一个IP地址–一个IP地址为32位(IPV4),或者128位(IPV6)–每个数据包都必须携带目的IP地址和源IP地址,路由器依靠此信息为数据包选择路由–特殊的IP地址:广播地址、多播地址IP地址的分类•表示形式:常用点分形式,如202.38.64.10,最后都会转换为一个32位的整数。•子网掩码2020/5/10TCP/IPSocket网络编程16/83IP地址分类•现在的IP网络使用32位地址,以点分十进制表示,如172.16.0.0。地址格式为:IP地址=网络地址+主机地址或IP地址=主机地址+子网地址+主机地址。IP地址类型最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。2020/5/10TCP/IPSocket网络编程17/83•1.A类IP地址一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”,地址范围从1.0.0.0到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。2.B类IP地址一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机。3.C类IP地址一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。4.D类地址用于多点广播(Multicast)。D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。5.E类IP地址以“llll0”开始,为将来使用保留。全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。2020/5/10TCP/IPSocket网络编程18/832020/5/10TCP/IPSocket网络编程19/83•在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下:A类地址:10.0.0.0~10.255.255.255B类地址:172.16.0.0~172.31.255.255C类地址:192.168.0.0~192.168.255.255•A类地址的第一组数字为1~126。注意,数字0和127不作为A类地址,数字127保留给内部回送函数,而数字0则表示该地址是本地宿主机,不能传送。B类地址的第一组数字为128~191。C类地址的第一组数字为192~223。2020/5/10TCP/IPSocket网络编程20/83•1.A类地址A类地址的表示范围为:0.0.0.0~126.255.255.255,默认网络掩码为:255.0.0.0;A类地址分配给规模特别大的网络使用。A类网络用第一组数字表示网络本身的地址,后面三组数字作为连接于网络上的主机的地址。分配给具有大量主机(直接个人用户)而局域网络个数较少的大型网络。例如IBM公司的网络。2.B类地址B类地址的表示范围为:128.0.0.0~191.255.255.255,默认网络掩码为:255.255.0.0;B类地址分配给一般的中型网络。B类网络用第一、二组数字表示网络的地址,后面两组数字代表网络上的主机地址。3.C类地址C类地址的表示范围为:192.0.0.0~223.255.255.255,默认网络掩码为:255.255.255.0;C类地址分配给小型网络,如一般的局域网和校园网,它可连接的主机数量是最少的,采用把所属的用户分为若干的网段进行管理。C类网络用前三组数字表示网络的地址,最后一组数字作为网络上的主机地址。实际上,还存在着D类地址和E类地址。但这两类地址用途比较特殊,在这里只是简单介绍一下:D类地址称为广播地址,供特殊协议向选定的节点发送信息时用。E类地址保留给将来使用。

1 / 21
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功