嵌入式网络通讯部分TCP/IP(1)

网络通讯

TCP/IP协议族

网络通信协议一共分为7层

TCP/IP可以分为4层的应用层对应osi的应用层,会话层和表示层,传输层和网络互连层分别对应传输层和网络层

tcp/iposi常见协议
应用层应用层
表示层
会话层
传输层
ftp
http
传输层传输层tcp,udp
网络互联层网络层ip
主机到网络层数据链路层
物理层
以太网

IP

  • 协议工作在网络层,负责数据包的传输管理,主要用于寻址和分段
  • ip协议可以根据目的地址选择报文在网络中的传输路径。
  • ip的分段功能会让数据包穿过不同类型的网络。

TCP协议

  • tcp协议是一个传输层协议,是一个面向连接的可靠传输协议
  • 当数据包ip层后有tcp,数据包交给tcp层处理,tcp协议会对数据进行错误检测

Socket 通信基本概念

嵌套字或者插口,网络上的通信节点

#include <sys/types.h>
#include <sys/socket.h>
int socket(int domin,int type, int protocol);

//domin 用于指定作用域,指的是互联网层的通信协议,常见的域有IPv4,IPV6
//type描述的是通讯方式,面向链接的数据流或者无连接的数据报,或者原始

面向链接的socket

三次握手

  • 服务器端

使用函数建立socket

通过bind函数把socket的句柄绑定到对应的端口

#include <sys/types.h>
#include <sys/socket.h>
int bind(int socktf,struct sockaddr *my_addr,socklen_t addrlen);
/*fd 是句柄,addr 是结构,里面包含ip和端口号,后两个参数是大小*/


通过listen函数监听,设置接听队列的大小

int listen(int s, int backlog);
只能用在连接的socket

通过accept和客户端链接

通讯完毕,关闭SOCKET

  • 服务器端

使用socket 创建

使用connect 链接服务器端

互发信息

关闭


版权声明:本文为qq_44600017原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。