网络通信程序设计 -计算机网络基础

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

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

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

资源描述

windows网络通信程序设计参考书王艳平主编《Windows网络与通信程序设计》(第二版)人民邮电出版社任泰明《TCP/IP协议与网络编程》西安电子科技大学出版社谢希仁《计算机网络教程》第一章计算网络基础内容提要1、网络基本概念2、计算网络参考模型3、网络程序寻址4、网络程序体系结构1网络的定义网络是连接在一起的可以互相通信的设备的集合。1.1网络基本概念自主计算机(Autonomouscomputers)互联/互连(Interconnected)——通信物理:通信线路/网络;逻辑:交换信息。两台计算机通过网络进行通信AB网络192.168.0.118192.168.0.10协议协议端口号端口号用户因特网ISP1ISP2因特网服务提供者用户通过ISP上网1.2计算机网络参考模型1.OSI模型OSI/RM(OpenSystemInterconnection/ReferenceModel,开放系统互连参考模型)将计算机网络通信定义为一个七层框架模型,如图1.1所示。信息流同层间对等通信7.应用层6.表示层5.会话层4.传输层3.网络层2.数据链路层1.物理层7.应用层6.表示层5.会话层4.传输层3.网络层2.数据链路层1.物理层源主机目标主机信息流信息流图1.1OSI模型与通信流程对等通信示例“你好”“Hello”传真中国教师翻译秘书“Hallo”“Hello”传真德国教师翻译秘书对交谈内容的共识用英语对话使用传真通信P3P2P1物理通信线路表1.1OSI模型中各个层的功能名称层次功能物理层1提供比特流传输数据链路层2进行数据打包与解包,形成信息帧网络层3提供数据通过的路由传输层4提供传输顺序与相应信息会话层5建立和中止连接表示层6数据转换,确认数据格式应用层7提供用户程序接口OSI模型的数据传输PHSHTHNHDHDTAH应用层表示层会话层传输层网络层链路层物理层应用层表示层会话层传输层网络层链路层物理层发送进程接收进程物理传输媒体数据数据数据AH数据PHAH数据PHSHAH数据PHSHTHAH数据PHSHTHNHAH比特流2.TCP/IP参考模型TCP/IP的架构OSI参考模型层次描述OSI层次号应用层7表示层6会话层5传输层4网络层3数据链路层2物理层1TCP/IP参考模型应用层传输层网络层网络接口层TCP/IP中每一层负责不同的功能:应用层,负责处理特定的应用程序细节。各种不同的TCP/IP实现都会提供下面这些通用的应用程序:•Telnet远程登录。•FTP文件传输协议。•SMTP简单邮件传送协议。•SNMP简单网络管理协议。•HTTP超文本传输协议。•TFTP简单文件传输协议。传输层,主要为两台主机上的应用程序提供端到端的通信。在TCP/IP协议族中,有两个传输协议:TCP(传输控制协议)和UDP(用户数据报协议)。UDP用户数据报的首部格式伪首部源端口目的端口长度检验和数据首部UDP长度源IP地址目的IP地址017IP数据报字节44112122222字节发送在前数据首部UDP用户数据报TCP首部20字节的固定首部目的端口数据偏移检验和选项(长度可变)源端口序号紧急指针窗口确认号保留FIN32位SYNRSTPSHACKURG位08162431填充TCP数据部分TCP首部TCP报文段IP数据部分IP首部发送在前TCP传输控制协议的首部格式网络层,有时也称作互联网层,处理分组在网络中的活动,例如分组的选路。网络层协议包括:IP协议(网际协议),ARP协议(地址解析协议),RARP(逆地址解析协议),ICMP协议(Internet互联网控制报文协议),IGMP协议(Internet组管理协议)。固定部分可变部分04816192431版本标志生存时间协议标识服务类型总长度片偏移填充首部检验和源地址目的地址可选字段(长度可变)位首部长度数据部分数据部分首部传送IP数据报首部发送在前网络接口层,通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。采用五层结构计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机2应用程序数据应用层首部H510100110100101比特流110101110101注意观察加入或剥去首部(尾部)的层次应用程序数据H5应用程序数据H4H5应用程序数据H3H4H5应用程序数据H4运输层首部H3网络层首部H2链路层首部T2链路层尾部计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机210100110100101比特流110101110101计算机2的物理层收到比特流后交给数据链路层H2T2H3H4H5应用程序数据计算机1向计算机2发送数据H3H4H5应用程序数据5432154321计算机1AP2AP1计算机2数据链路层剥去帧首部和帧尾部后把帧的数据部分交给网络层H2T2H3H4H5应用程序数据计算机1向计算机2发送数据H4H5应用程序数据H3H4H5应用程序数据5432154321计算机1AP2AP1计算机2网络层剥去分组首部后把分组的数据部分交给运输层计算机1向计算机2发送数据H5应用程序数据H4H5应用程序数据5432154321计算机1AP2AP1计算机2运输层剥去报文首部后把报文的数据部分交给应用层计算机1向计算机2发送数据应用程序数据H5应用程序数据5432154321计算机1AP2AP1计算机2应用层剥去应用层首部后把应用程序数据交给应用进程计算机1向计算机2发送数据5432154321计算机1AP2AP1计算机2收到了AP1发来的应用程序数据!TCP/IP协议族网络接口层网络层ICMPIPIGMPRARPARP传输层TCPUDPHTTP。。。SMTPFTPTELNETSNMPTFTP。。。应用层Port2321258016169网络接口1网络接口2网络接口3局域网广域网主机H1主机H2路由器R1路由器R2路由器R3电话网局域网主机H1向H2发送数据链路层应用层运输层网络层物理层链路层应用层运输层网络层物理层链路层网络层物理层链路层网络层物理层链路层网络层物理层R1R2R3H1H2从层次上来看数据的流动Windows操作系统的总体架构应用程序(EXE)动态链接库(DLL)应用程序(EXE)驱动程序(VXD,SYS)硬件应用层核心层EXE是一个独立且能直接执行的模块。DLL是一个共享的函数库,它提供标准的接口供其它应用程序调用,本身不能单独运行,被应用程序调用时就成为程序的一部分。应用层是可以直接接触到的,各种用户界面都是应用层程序执行的结果。文件扩展名是.exe或.dll。在应用层下面是核心层(kernel)。Windows95/98下核心层程序扩展名是.vxd;WindowsNT/2000下核心层扩展名是.sys核心层的程序叫驱动程序。驱动程序为上层应用程序提供底层的支持。应用层传输层网络层网络接口层TCP/IP协议Windows程序User.exeWS2_32.DLLftp.exeTcpip.sysTcpip.sysNe2000.sys网卡应用层核心层系统文件,主要提供了TCP、UDP、IP协议的实现网卡驱动程序TCP/IP协议在Windows中的实现1.3网络程序寻址方式IP地址MAC地址端口NAT使用TCP/IP协议的互连网使用3个等级的地址:即物理(硬件)地址、互连网(IP)地址、端口地址。每一种地址都与TCP/IP体系结构中的特定层相对应。底层物理网络IP协议TCP进程UDP物理地址IP地址端口地址地址分类1.IP地址(IPV4)•IP地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的32位的标识符。•目前IP地址是一个32位地址(IPv4),可以用来标识连接在因特网上的每一个主机。•在因特网上没有两个主机具有同样的IP地址。•下一代的IP为IPv6。IP地址采用点分十进制记法10000000000010110000001100011111机器中存放的IP地址是32位二进制代码每隔8位插入一个空格能够提高可读性1000000000001011000000110001111112811331将每8位的二进制数转换为十进制数采用点分十进制记法则进一步提高可读性128.11.3.31IP地址的编址方法分类的IP地址。这是最基本的编址方法。划分子网。这是对最基本的编址方法的改进。无分类编址(CIDR)。这是比较新的无分类编址方法。net-id24位host-id24位net-id16位net-id8位IP地址中的网络号字段和主机号字段0A类地址host-id16位B类地址C类地址011host-id8位D类地址1110多播地址E类地址保留为今后使用111101特殊的IP地址:网络地址:IP中主机地址为0的地址表示网络地址,如128.211.0.0。广播地址:网络号后跟一个所有位全是1的后缀,就是广播地址。环回地址:127.*.*.*,用于测试。TCP报文IP数据报MAC帧应用层数据首部首部尾部首部链路层及以下使用硬件地址硬件地址网络层及以上使用IP地址IP地址划分子网纯属一个单位内部的事情。这个单位对外仍然表现为没有划分子网的网络。从主机号借用若干个位作为子网号subnet-id,而主机号host-id也就相应减少了若干个位。IP地址::={网络号,子网号,主机号}三级的IP地址--划分子网CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间。CIDR使用各种长度的“网络前缀”(network-prefix)来代替分类地址中的网络号和子网号。IP地址从三级编址(使用子网掩码)又回到了两级编址。无分类编址--CIDR最主要的特点无分类的两级编址的记法是:IP地址::={网络前缀,主机号}掩码无分类的两级编址2.MAC地址硬件地址又称为物理地址或MAC地址,这一地址被固化在每个网卡的ROM中,每个网卡在出厂时都赋于了一个全世界范围内唯一的地址编号,地址为6字节(即48位)。MAC地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,都有相同的MAC地址。MAC地址6字节(48比特)。地址解析地址解析(AddressResolution)就是将计算机中的协议地址翻译成物理地址(或称MAC地址,即媒体映射地址)。地址解析只能在本地网内进行。ARP响应AYXBZ主机B向A发送ARP响应分组主机A广播发送ARP请求分组ARP请求ARP请求ARP请求ARP请求209.0.0.5209.0.0.600-00-C0-15-AD-1808-00-2B-00-EE-0A我是209.0.0.5,硬件地址是00-00-C0-15-AD-18我想知道主机209.0.0.6的硬件地址我是209.0.0.6硬件地址是08-00-2B-00-EE-0AAYXBZ209.0.0.5209.0.0.600-00-C0-15-AD-18HA1HA5HA4HA3HA6主机H1主机H2路由器R1硬件地址路由器R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机H1主机H2路由器R1IP层上的互联网MAC帧IP2IP4IP3IP5路由器R2IP1→IP2IP1→IP2IP1→IP2从HA1到HA3从HA4到HA5从HA6到HA2MAC帧MAC帧IP数据报从协议栈的层次上看数据的流动3.端口网络中可以被命名和寻址的通信端口是操作系统可分配的一种资源。按照OSI协议的描述,传输层与网络层在功能上的最大区别是传输层提供进程通信,从这个意义上讲,网络通信的最终地址不仅仅是主机地址,还包括可以描述进程的某种标识符。TCP/IP协议提出协议端口(protocolport,简称端口)的概念,用于标识通信的进程。端口是一种抽象的软件结构(包括一些数据结构和I/O缓冲

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

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

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

×
保存成功