网络编程基础知识

本文深入解析了OSI七层模型和TCP/IP四层模型,涵盖了从应用层到物理层的功能和协议,包括TCP与UDP的区别、三次握手与四次挥手等关键概念。此外,还介绍了SOCKET接口及其在TCP/UDP编程中的应用,以及基本的通信流程。
摘要由CSDN通过智能技术生成

OSI七层模型

应用层 :提供各种应用程序的接口
表示层:数据加密、格式转换
会话层:建立、管理、维护、会话
传输层:建立端对端的连接
网络层:IP寻址和路由选择
数据链路层:流量控制、链路管理
物理层:规范电压和接口

TCP/IP四层模型

应用层:应用层协议(规定发送和回复数据的格式和方法)
			http,FTP,TFTP,QQ协议...
传输层(TCP/UDP)
		主要作用是解决数据如何传输的问题
		TCP(Transport Control Protocol):传输层控制协议
			是一种面向连接的传输层协议,它能够提供高可靠性的通信(即数据无误,数据无丢失,数据无失序,数据无重复到达)
		TCP是如何保证数据数据无误,数据无丢失,数据无失序,数据无重复的?
			三次握手("面向连接") 、  重发机制  、 流量控制(滑动窗口机制)  、四次挥手	
		UDP (User DataGram Protocol)用户数据报协议	
			是一种不可靠的面向无连接的协议,在数据发送前不需要经过连接,一般用来进行高效率的数据传输."实时应用"			
	网络层(IP网际协议,IGMP互联网组管理协议,ICMP互联网控制报文协议(PING))
		PING:测试网络是否可达 ping 192.168.10.1
		它的功能是把数据包发送给目标主机或者目标网络,为了尽快的发送数据包,可能会沿不同的路径同时发送,所有数据包到达的顺序和发送的顺序可不同,需要上层(传输层)对数据包排序。	
数据链路层(物理层)

各层之间的联系

每一层实现自己的功能和协议,并且都为上一层提供业务功能,下一层一般会把上一层的数据并入到本层数据中,通过加入报头和报尾来实现该层的业务功能,该过程叫做数据的封装.用户数据要经过一次次的封装最后转换为可以在网络上传输的信号,到达目标计算机后,再执行相反的拆包过程。

SOCKET接口

一个网络编程接口,是一个特殊的文件描述符(可以认为socket就是一个文件描述符)
可以使用文件IO中的API接口去直接操作的(write/read)
这个接口位于传输层和应用层之间
认为:
你需要发送数据给网络上的其他人,只需要把数据写入socket中即可
socket类型:
	(1).流式套接字(SOCK_STREAM)  数据流
			面向字节流,针对传输层协议为TCP的应用程序
			只能处理TCP协议的数据
	(2).数据报套接字(SOCK_DGRAM) 
			针对传输层协议为UDP的应用程序
			只能处理UDP协议的数据
	(3).原始套接字
			直接跳过传输层,直接访问网络层的数据包

基本的TCP/UDP的编程流程

	CS结构
	Client(客户端,可以主动向服务器发送请求)
		IP + 传输层协议 + 端口号	
	Server(等待客户端的连接,处理客户端的请求)
		IP + 传输层协议 + 端口号
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值