网络编程基础.pdf

网络编程基础.pdf

ID:52242280

大小:471.09 KB

页数:39页

时间:2020-03-25

网络编程基础.pdf_第1页
网络编程基础.pdf_第2页
网络编程基础.pdf_第3页
网络编程基础.pdf_第4页
网络编程基础.pdf_第5页
资源描述:

《网络编程基础.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、网络编程基础3Sept.2008©NeusoftConfidential一.TCP/IP概述1.1分层模型OSI参考模型TCP/IP参考模型应用层表示层应用层会话层传输层传输层网络层网络层数据链路层网络接口层物理层应用层(ApplicationLayer)在应用层用户调用程序通过TCP/IP互联网来访问可行的服务。传输层(TransportLayer)传输层负责提供应用程序之间的通信服务。这种通信又称为端到端通信。传输层管理信息的流动,提供可靠的传输服务,以确保数据到达无差错、无乱序。为了达到这个目的,传输层协议要进行协商,让接收方回送确认信息及让

2、发送方重发丢失的分组。传输层协议软件把要传输的数据流划分为分组,把每个分组连同目的地址交给网络层去发送。网络层(InternetLayer)网络层负责选择主机之间通信用数据报的传输路径,即路由。网络接口层(NetworkInterfaceLayer)网络接口层是TCP/IP协议软件的最底层,负责将二进制流转换为数据帧,并进行发送和接收。1.2消息封装TCP/IP参考模型应用层传输层网络层网络接口层1.3TCP/IP协议族1.4TCP/IP核心协议•TCP(TransmissionControlProtocol)–传输控制协议,基于连接的服务•UDP

3、(UserDatagramProtocol)–用户数据报协议,无连接的服务•IP(InternetProtocol)–Internet协议,信息传递机制1.4.1TCP协议•TCP–TCP向应用层提供可靠的面向对象的数据流传输服务,TCP数据传输实现了从一个应用程序到另一个应用程序的数据传递。它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信),应用程序通过向TCP层提交数据接发送/收端的地址和端口号而实现应用层的数据通信1.4.1TCP协议•三次握手TCP是面向连接的,所谓面向连接,就是当计算机双方通信时必需先建立连接

4、,然后进行数据通信,最后拆除连接三个过程。TCP在建立连接时又分三步走:–第一步:主机A向主机B发送一个包含同步标志的TCP报文。–第二步:主机B在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示主机B的请求被接受。–第三步:主机A也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。三次握手SYNJSYNK,ACKJ+1ACKK+11.4.2UDP协议•UDP–UDP即用户数据报协议,是一种面向无连接的不可靠传输协议,不需要通过3次握手来建立一个连接,同时,一个UDP应用可同时作为应用的客户或服务器方。

5、–由于UDP协议并不需要建立一个明确的连接,因此建立UDP应用要比建立TCP应用简单得多。UDP比TCP协议更为高效,也能更好地解决实时性的问题,如今,包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都使用UDP协议。二.Socket编程2.1什么是Socket•独立于具体协议的网络编程接口•在TCP/IP模型中,主要位于传输层和应用层之间应用层程序流套接字数据报套接口接字接口原始套接字接口TCPUDPIP数据链路层与物理层2.2什么是套接字•套接字是一个通信终结点,它是Socket应用程序用来在网络上发送或接收数据包的对象•套接字具有类

6、型,与正在运行的进程相关联,并且可以有名称•套接字一般只用同一种高层协议进行通信。也就是说,不可能通信的一端用TCP,而另一端用UDP应用程序A应用程序B套接字A套接字B套接字通信模型2.2什么是套接字在Linux中套接字(socket),是一种特殊的I/O接口,它也是一种文件描述符。是一种常用的进程之间通信机制,通过它不仅能实现本地机器上的进程之间的通信,而且通过网络能够在不同机器上的进程之间进行通信。每一个socket用一个相关描述{协议、本地地址、本地端口、远程地址、远程端口}来表示。socket也有一个类似于打开文件的函数调用,该函数返回一

7、个整型的socket描述符,随后的连接建立、数据传输等操作都是通过socket来实现的。2.3Scoket类型流式套接字(SOCK_STREAM)流式套接字使用TCP协议,提供面向连接的通信流;数据报套接字(SOCK_DGRAM)数据报套接字使用UDP协议,提供面向无连接的服务;原始套接字(SOCK_RAW)原始套接字允许对底层协议如IP或ICMP进行直接访问;2.4地址与端口在网络上,一个Socket的标识主要借助于地址和端口来描述地址指该套接字所在计算机的网络地址,可以为域名或IP地址的形式同一机器上可以运行多个网络应用程序,每个应

8、用程序都有自己的套接字用以进行网络通信,此时如果只有地址标识套接字,则当一个通信包到达机器时,将无法确定究竟是哪个应用程序

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。