网络编程基础知识

网络编程知识概念:

网络通信:跨主机间进程间的通信

TCP/IP协议分成两个不同的协议:
用来检测网络传输中差错的传输控制协议TCP,是可靠的传输
专门负责对不同网络进行互联网协议IP,不可靠的传输
两个最有代表的协议促成了TCP/IP协议

网络采用分层的思想:
1.每一层实现不同的功能,对上层的数据做透明传输
2.每一层向上层提供服务,同时下层提供的服务

OSI开放系统互联网模型:
是一个理想化的模型,尚未有完整的实现
七层结构
应用层
表示层
会话层
传输层
网络层
数据链路层
物理层

TCP/IP协议族体系结构:是Internet事实上的工业标准
一共有四层:准确得来说是五层
用户态:
应用层:FTP,HTTP、(邮件传输协议)pop\smtp…
内核态:
传输层:TCP、UDP…进程到进程的数据传输
网络层:IP,ICMP,IGMP…源主机到目的主机的数据分组路由转发
数据链路和物理层:相邻网络元素的数据传输(以太网,802.11,PPP),物理层提供最基本的bit传输

物理层
1.接收数据链路层组织的数据帧,进行bit编码,并控制时序,屏蔽硬件差异,进行基本的bit数据传输
2.获取接口中到达的数据,解码数据后,并传递给数据链路层

数据链路层:
1.接收网络层组织的数据分组,添加数据帧,数据帧中包含源主机
mac地址和目标mac地址,将组织好的数据传达给物理层
2.接收物理层传达的数据,查看目的地址,若以到达则传达给网络层,
若未达到也修改数据帧中的信息传达给物理层

Mac地址:局域网中的每块网卡都有一个唯一的Mac地址,Mac地址由IEEE
统一管理与分配,48位的整型数,被固化在网卡的Rom中,常见形式:1A-2F-BB-76-09-AD,
网卡生产商购买前24位,其余的自行分配,保证每张网卡都有唯一的mac地址

Mac地址与ip地址的区别:mac像是身份证是唯一不可变的,ip地址像是邮政地址可变

网络层
1.从传输层接受数据段,进行分组,并添加上IP协议头,协议头中包括源ip地址和目的ip地址等信息交给数据链路层
2.接收数据链路层传递的数据,若到达目的地就重组数据传达给传输层,
若没有到达就通过路由表确定转发接口,传达给数据链路层
IP协议:有类IP编址
A类地址占50%:0.0.0.0-127.255.255.255
网络号占8位,主机号占24位
B类地址占25%:128.0.0.0-191.255.255.255
网络号占16位,主机号占16位
C类地址占12.5%:192.0.0.0-223.255.255.255
网络地址占24位,主机号占8位
D类地址占6.5%:224.0.0.0-239.255.255.255
多(组)播地址
E类地址占6.5%:240.0.0.0-255.255.255.255
保留做特殊研究
子网掩码用于确定的子网的划分:
取值:网络号,子网号全取,主机号全取0
例如:
A网子网掩码:255.0.0.0
B网子网掩码:255.255.0.0
以此类推……
域名服务器的网络号为前32位,所以子网掩码为255.255.255.255
**子网划分:**子网192.168.3.0 ,255.255.255.0
表示除3.0和3.255,其余ip可分配
若划分为等长的4个子网
子网1:192.168.3.0 ,255.255.255.192
子网2:192.168.3.64 ,255.255.255.192
子网3:192.168.3.128,255.255.255.192
子网4:192.168.3.192 ,255.255.255.192
网关:数据传输时下一跳的地址
DHCP协议:主机获取IP地址
1.硬编码->静态配置
2.动态主机配置协议->DHCP
主机接入网络广播DHCP协议报文
DHCP服务器接收后,响应提供报文表示可以分配
主机发送请求IP地址报文
DHCP服务器分配IP地址
网络地址转换(NAT):私有地址是无法在网络中出现,若需要通信,则需要地址转换
A类:10
B类:172.16 - 172.31
C类:192.168.0 - 192.168.255

传输层
1.接受应用层的数据通过传输层协议进行处理之后交给网络层
2.接受网络层的数据,通过协议进行处理之后交给应用层

TCP:传输控制协议,提供面向连接的,一对一的可靠数据传输协议,如:打电话,QQ等
TCP,提供面向连接,通过数据收发前建立起的一条数据链路进行数据的收发,并提供可靠的数据传输(数据无丢失(采用丢失重传机制)、数据无误、数据无失序和数据无重复(通过差错校验机制)到达的通信)

UDP:用户数据报协议,提供不可靠,无连接的尽力传输协议,如:流媒体,文件传输
该协议对IP协议进行了简单的封装,由于无连接,无差错校验和丢失重传等机制,所以传输时是高效的,且是灵活的,可由用户自行构建可靠协议

应用层:
最为丰富的一个层面,进程间的数据传输格式由用户自己指定,形成应用层协议,如:HTTP超文本协议等

什么是Socket?
Socket是一个应用层访问网络的一个接口函数,通过该接口可以选则数据传输时采用的网络层协议,以及传输层协议进行简单高效的网络应用软件构建,最大的作用 就是混合了传输层和网络层

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值