网络编程(TCP/IP、UDP、OSI体系结构(7层模型)、socket)

本文介绍了网络编程的基础知识,包括IP地址、端口号和通信协议的概念。详细阐述了UDP和TCP两种主要的通信协议,指出UDP是无连接、高效但不保证数据安全的协议,常用于多媒体传输;而TCP则是面向连接、具备错误检测和恢复能力的协议,适用于可靠性要求高的数据传输。还提及了socket编程的基本步骤和网络字节序。最后,提到了客户端和服务器的角色定义。
摘要由CSDN通过智能技术生成

1、网络编程

    在网络通信协议下,实现网络互联的不同计算机上运行的程序间可以进行数据交换;

2、网络编程三要素

    IP地址:计算机之间相互通信需要一个标识号,而IP地址就是这个标识号

    端口:端口号是唯一可以标识设备中的应用程序即应用程序的标识、进程的ID号

     用2个字节的整表示,取值范围0~65535 0--1023之间的端口号用于一些知名网络服务和应用,1024以上的端口号为普通应用程序

    通信协议:计算机网络中,连接和通信的规则称为网络通信协议

常见的通信协议有:UDP  TCP

3、UDP协议:

    用户数据报协议

    无连接通信协议(不安全),数据的发送端和接收端不建立逻辑关系

    消耗资源少,通信效率高  通常用于音频 视频  广播 组播 普通数据传输

    收发数据:

    发----

        1、创建套接字

        2、创建数据,并将数据打包 

        3、发送数据

        4、关闭发送端

    收----

        1、创建套接字

        2、创建一个数据包用于接收数据

        3、接收数据

        4、解析数据包,并将数据在控制台显示

        5、关闭接受端

4、TCP协议:检测网络传输中的出错,并且具备一定的纠错能力

      IP协议:不同类型的操作系统和计算机的网络连接

    传输控制协议

    面向连接的通信协议,数据传输前,发送端与客户端要建立逻辑关系,并且要明确服务器端与客户端,客户端向服务器端发起连接请求,每次连接都要经过三次握手;

    三次握手,建立连接后,进行数据传输,TCP面向连接的这种特性可以保证数据传输的安全,应用广泛,上传下载文件,大量的数据传输,传输 效率较低

    框架:

    1、创建套接字socket()

    2、绑定bind()

    3、监听listen()

    4、接受连接()

    5、数据交互 recv/send   read/write

    6、关闭close()

OSI体系结构:七层模型 、理想化的模型、尚未实现

1、应用层:基于应用程序,获取需要传输的数据

2、表示层:对数据进行格式定义、加密以及转换 

3、会话层:建立通信进程中的逻辑名字和物理名字之间的联系

4、传输层:提供可靠数据传输,差错处理及恢复(TCP)、流量控制(UDP )

5、网络层:数据分组,路由选择

6、数据链路层:数据组成可发送和接收的帧

7、物理层:传输物理信号(硬件层面 )

TCP/IP协议族 

TCP :传输控制协议

IP:网间协议

UDP :用户数据报协议

ARP :地址解析协议

HTTP :超文本传输协议

FTP:文件传输协议 

OSI模型与TCP/IP协议对应关系

OSI模型                      TCP/IP协议

应用层

表示层                         应用层 

会话层 

传输层                         传输层

网络层                         网络层

数据链路层                  物理层

物理层

5、socket的类型

    流式套接字(SOCK_STREAM ):面向连接的服务   TCP

    数据报套接字(SOCK_DGRAM):无连接服务       UDP

    原始套接字(SOCK_RAW):底层通信   (IP.ICMP.IGMP)

6、字节序:数据的存储方式

    小端序:低字节存储在低地址

    主机字节序

    大端序:低字节存放在高地址

    网络字节序

7、客户端:与用户进行数据交换的界面程序,即上位机

      服务器:为客户端提供数据服务的后台软件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值