您的位置:首页 > 理论基础 > 计算机网络

Linux网络编程——网络基础知识

2017-08-17 14:54 253 查看
学习笔记,小白可以相互学习,大佬看到能告诉咱理解不对的地方就好了。

1.Internet历史

"冷战”的产物,有兴趣去搜索。

2.网络体系结构

网络体系结构即是指网络的层次结构和每层所使用的协议的集合。
2类非常重要的体系结构:OSI与TCP/IP
(用来检测网络传输中差错的传输控制协议TCP)
(专门负责对不同网络进行互联的互联网协议IP)

OSI七层模型:由底层开始往上依次为
物理层,数据链路层,网络层,传输层,会话层,表示层,应用层

TCP/TP四层:[b]由底层开始往上依次为
网络接口与物理层,    网络层,传输层,                               应用层[/b]

常用协议:
TCP传输控制协议
IP网间协议
UDP用户互数据报协议
ICMP互联网控制信息协议
SMTP简单邮件传输协议
SNMP简单网络管理协议
HTTP超文本传输协议
FTP文件传输协议
ARP地址解析协议

2.1UDP和TCP
共同点:同为传输层协议
不同点:TCP:优点:有连接,可靠          缺点:效率较低
UDP:缺点:无连接,不可靠      缺点:效率较高

TCP协议特点:是一种面向连接的传输层协议,它能提供高可靠性通信(数据无误,数据无丢失,数据无失序,数据无重复)
UDP协议特点:用户数据报协议,是不可靠的无连接协议。在数据发送之前不需要进行连接,所以可进行高效率的数据传输

3.socket(通信的渠道)

1.是一个编程接口,函数接口:创建socket套接字
2.文件描述符可以实现不同主机不同平台等之间的通信,特殊的文件描述符
3.使用范围:可以使用于TCP/IP(1.TCP:流式套接字,面向连接、数据可靠;2.UDP:数据报套接字,无连接、不保证数据可靠);还可以使用网络层的ICMP协议(原始套接字)
4.使用原因:主要是解决不同主机之间数据通信,并且保证数据的高效传输。即通过socket套接字文件描述符实现。
5.类型以及位置:
流式套接字(SOCK_STREAM):     位于传输层
数据报套接字(SOCK_DGRAM):   位于传输层
原始套接字(SOCK_RAW):
跳过传输层



3.IP地址(通信的位置)

IP地址 = 网络地址 (+子网号)+ 主机地址
1.IP地址是Internet中主机的标识
主机要与别的机器通信必须具有一个IP地址。IP地址为32位(IPv4),128(IPv6)
2.数据包在发送的过程中,每一个数据包都会携带目的IP和源IP
3.IP地址的表现形式:人识别的是点分形式的IP地址,例如:192.168.2.39;计算机识别的是32位无符号整形数(网络字节序的方式)。
  4.IP地址分类:五类()用途:1.ABC:通用IP地址;2. D:多点广播;3. E:目前未使用
  5.子网掩码:网络地址=IP地址 & 子网掩码; 
主机地址=IP地址 & ~子网掩码

  (例:IP地址192.168.2.1,子网掩码255.255.255.234,求还可以连接多少台主机?
234转成2进制是11101011取反为00010101在位与上11111111 = 00010101 = 21
21 - 2 = 19 (减去2是因为主机和广播各占据了一个)


4.端口号(寻找服务器或者客户端所在进程)

 1.用来标识服务器或者客户端运行的进程,但是端口号和进程是相互对立
2.在TCP与UDP当中端口号相互独立

5.字节序

网络中传输的数据必须按网络字节序,即大端字节序(字节高位在内存中放在存储单元低位)
小端(高地址放在存储数据的高位):与大端相反

  主机字节序转换成网络字节序

 
u_long htonl (u_long hostlong)


 
 u_short htons (u_short short)


  网络[b]字节序转换成主机字节序[/b]

[b]u_long ntohl(u_long hostlong)[/b]

[b]u_short ntohs(u_short short)[/b]

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: