实验四 嵌入式Linu中的网络通信.docxVIP

  • 3
  • 0
  • 约5.06千字
  • 约 7页
  • 2024-07-13 发布于上海
  • 举报

实验四 嵌入式Linux中的网络通信一.实验目的

掌握Linux中网络通信的基本知识

理解网络通信中服务器端、客户端的工作过程

能够在Linux中进行网络通信编程

二.实验内容

网络通信的基本知识

Linux中网络通信编程

三.实验步骤

1.TCP/IP概述

TCP/IP的分层模型

OSI协议参考模型,它是基于国际标准化组织(ISO)的建议发展起来的,它分为7个层次:应用层、表示层、会话层、传输层、网络层、数据链路层及物理层。这个7层的协议模型虽然规定得非常细致和完善,但在实际中却得不到广泛的应用,其重要的原因之一就在于它过于复杂。但它仍是此后很多协议模型的基础。与此相区别的TCP/IP协议模型将OSI的7层协议模型简化为4层,从而更有利于实现和使用。

TCP/IP的协议参考模型和OSI协议参考模型的对应关系如下图:

应用层表示层应用层会话层传输层传输层网络层

应用层

表示层

应用层

会话层

传输层

传输层

网络层

网络层

数据链路层

网络接口层

物理层

TCP/IP核心协议

SYNJ

SYNK,ACKJ+1

ACKK+1

三次握手

TCP是面向连接的,所谓面向连接,就是当计算机双方通信时必需先建立连接,然后进行数据通信,最后拆除连接三个过程。TCP在建立连接时又分三步走:

第一步(A-B):主机A向主机B发送一个包含SYN即同步

(Synchronize)标志的TCP报文,SYN同步报文会指明客户端使用的端口以及TCP连接的初始序号;

第二步(B-A):主机B在收到客户端的SYN报文后,将返回一个

SYN+ACK的报文,表示主机B的请求被接受,同时TCP序号被加一,

ACK即确认(Acknowledgement)。

第三步(A-B):主机A也返回一个确认报文ACK给服务器端,同样TCP序列号被加一,到此一个TCP连接完成。

套接字(socket)概述

套接字类型

流式套接字(SOCK_STREAM)

流式套接字提供可靠的、面向连接的通信流;它使用TCP协议,从而保证了数据传输的可靠性和顺序性。

数据报套接字(SOCK_DGRAM)

数据报套接字定义了一种无可靠、面向无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证是可靠、无差错的。它使用数据报协议UDP

原始套接字(SOCK_RAW)

原始套接字允许对底层协议如IP或ICMP进行直接访问,它功能强大但使用较为不便,主要用于一些协议的开发。

地址及顺序处理地址结构处理

structsockaddr

{

unsignedshortsa_family;/*地址族*/

charsa_data[14];/*14字节的协议地址,包含该socket的IP地址和端口号。*/

};

structsockaddr_in

{

shortintsa_family;/*地址族*/unsignedshortintsin_port;/*端口号*/

structin_addrsin_addr;/*IP地址*/

unsignedcharsin_zero[8];/*填充0以保持与structsockaddr同样大小*/

};

这两个数据类型是等效的,可以相互转化,通常sockaddr_in数据类型使用更为方便。

在建立socketadd或sockaddr_in后,就可以对该socket进行适当的操作了。

套接字编程

函数说明

socket() 创建套接字

bind() 绑定本机端口

connect() 建立连接

listen() 监听端口

accept() 接受连接

recv(),read(),recvfrom() 数据接收

send(),write(),sendto() 数据发送

close(),shutdown() 关闭套接字

使用TCP时Socket编程

socketsocket

socket

socket

bind

bind

listen

accept

connect

recv/recvfrom

send/sendto

send/sendto

recv/recvfrom

close

close

使用UDP时Socket编程

socket

socket

socket

listen

accept

connect

recvfrom

recv

send

sendto

sendto

send

recv

recvfrom

close

close

四.实验代码分析

1.分析下面代码完成的工作A服务器端代码

/*server.

文档评论(0)

1亿VIP精品文档

相关文档