step5 . day1 网络编程基础知识

1.IP分类(点分十进制IP,IPv4 32位,IPv6v 48位)

A类:0.0.0.0 - 127.255.255.255   (0开头)

B类:128.0.0.0 - 191.255.255.255 (10开头)

C类:192.0.0.0 - 223.255.255.255(110开头)

D类:224.0.0.0 - 239.255.255.255(1110开头,组播地址)

E类:保留

C类IP最多可以连接主机的个数为254,需要除网络地址0,广播地址255 

2.子网掩码(是一个32位的整数,作用是将某一个IP划分成网络地址和主机地址,目的是合理的利用IP资源)

子网掩码: (前面全是1,后面全是0) (不同类型IP子网掩码范围不同,网络号是1,主机位是0)
255.255.255.0
1111 1111 1111 1111 1111 1111 0000 0000
网络号                                        主机号

例子:已知一个子网掩码号为255.255.255.192,问,最多可以连接多少台主机?
62台
256 - 192 = 64 - 2 = 62台
2^6 = 64 - 2 = 62台;

3.端口号:为了区分一台主机接收到的数据包应该转交给哪个进程来进行处理,使用端口号来区别  0~65535(2000以内系统注册,5000以内已经使用,一般使用8888等5000以上的端口)

4.OSI 7层模型

OSI模型是最理想的模型
物理层:传输的是bit流,物理信号,没有格式
链路层:格式变为帧
网络层:路由器中是有算法的,ip,(主机到主机)
传输层:端口号,数据传输到具体那个进程程序 (端到端)
会话层:通信管理,负责建立或者断开通信连接
表示层:确保一个系统应用层发送的消息可以被另一个系统的应用层读取,编码转换,数据解析,管理数据加密,解密;
应用层:指定特定应用的协议,文件传输,文件管理,电子邮件等。

5.TCP/IP协议族(数据由用户发出后,在每一层经过该层协议进行封包后传入下一层,接受顺序相反,依次拆包)
应用层                              TFTP,HTTP,SNMP,FTP,SMTP,DNS,Telnet
传输层                               TCP,UDP
网络层                               IP,ICMP,RIP,OSPF,BGP,IGMP
网络接口与物理层             SLIP,CSLIP,PPP,ARP,RARP,MTU ISO2110,IEEE802.1,EEE802.2

6.UDP 和 TCP协议区分

相同点:都存在于传输层


TCP(即传输控制协议):
是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、
数据无失序、数据无重复到达的通信)

适用情况:
适合于对传输质量要求较高,以及传输大量数据的通信。
在需要可靠数据传输的场合,通常使用TCP协议
MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议

UDP(User Datagram Protocol)用户数据报协议,是不可靠的无连接的协议。在数据发送前,
因为不需要进行连接,所以可以进行高效率的数据传输。

适用情况:
发送小尺寸数据(如对DNS服务器进行IP地址查询时)
在接收到数据,给出应答较困难的网络中使用UDP。(如:无线网络)
适合于广播/组播式通信中。
MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议
流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输

7.Socket为C语言中的编程接口,类似提供一个特殊文件描述符用于通信

8.网络通信中使用大端字节序传输,本地字节序需要经过函数接口转换后传入网络(检查主机字节序方法:定义整形,强转char型,输出,或者定义指针等方式)

 

posted @ 2019-08-13 22:59  灰机12321  阅读(154)  评论(0编辑  收藏  举报