Linux下网络编程TCP/UDP简介

一、OSI模型七层结构
(1)物理层:传输的是二进制的比特流
    连接的物理介质(双绞线、光纤、wifi)和网络接口(网卡)
(2)链路层:传输单位是包(帧),有格式
    拆包和打包
    MAC地址:唯一标示一个网络设备(身份证号)
             工作的硬件:交换机     
(3)网络层:路由选择
    工作的硬件:路由器
    IP地址:在网络中惟一标示一台主机(地址)
(4)传输层:传输控制(TCP和UDP协议)
    端口号:标示一个网络进程。(类似PID)(人名)  
(5)会话层:建立通信进程的逻辑名字与物理名字之间的联系,bind函数
(6)表示层:压缩和解压,加密和解密
(7)应用层:和应用程序相关,也可以没有协议。

二、TCP/IP体系结构
(1)在工程中真正使用的体系结构,是更加精简和更加高效的模型。
(2)TCP/IP与OSI参考模型的对应关系:前三后二合并 
(3)TCP/IP体系结构是四层结构:
  应用层
  传输层
  网络层
  网络接口及物理层

三、重要协议
(1)ARP : 通过IP地址获得MAC地址
(2)RARP:通过MAC地址获得IP地址
(3)MTU :最大传输单元协议,对应MTU变量。
(4)IP  :网际协议
(5)ICMP: 网络控制管理协议
(6)IGMP:网络组管理协议:实现多播和广播
(7)TCP :传输控制协议
(8)UDP :用户数据包协议
(9)DNS : 域名解析协议 网址--》IP
(10)SMTP:简单邮件传输协议
(11)SNMP:简单网络管理协议

四、socket
(1)功能:1--本地通信  2--网络通信
(2)socket 本质:一种文件,基础的打开、关闭、读写操作
(3)socket 在网络通信中是一种独立于协议的通用网络编程接口。
(4)socket分为很多种类型:最主要的三种类型
1--流式套接字(SOCK_STREAM)---TCP
2--数据报套接字(SOCK_DGRAM)--UDP
3--原始套接字(SOCK_RAW)--PING
(5)socket 在体系结构中的位置:分情况讨论

五、IP
(1)IP的作用:IP地址是Internet中主机的标识
(2)IP的两种类型:IP地址为32位(IPv4)或者128位(IPv6)
(3)IP的两种形式:
1--数字形式 
2--点分十进制的ASCII形式  192.168.4.9
(4)点分十进制的ASCII形式ip 转化为 数字形式
“1234”--> 1234     atoi
(5)
1--inet_aton()
#include <arpa/inet.h>
int inet_aton(const char *strptr,struct in_addr *addrptr);
函数功能:将strptr所指的字符串转换成32位的网络字节序二进制值
输入参数:const char *strptr :字符串:点分十进制的ASCII形式ip
      struct in_addr *addrptr :网络地址结构体
输出参数:int :0:   参数错误
                 非0:参数正确
2--inet_addr()
功能同上,返回转换后的地址。
in_addr_t inet_addr(const char *strptr);
3--inet_ntoa()
将32位网络字节序二进制地址转换成点分十进制的字符串。 
char *inet_ntoa(stuct in_addr inaddr);

六、端口号
(1) 端口号:标示一个网络进程。(类似PID)(人名)
(2) 端口号是一个16位的数字:1--65536
(3) 系统占用;    1~1023
      大软件占用: 1024-5000
      程序员能使用:5001 -- 63536
(4)网络进程标示三元组:
1-- 网络协议 TCP UDP
        2-- IP 地址
        3-- 端口号

七、字节序
(1)字节序:多字节数据储存问题。
(2)计算机里的存储器的编址都是以字节为单位
(3)小端:低低小(低字节放在低地址是小端)
          大端:低高大
(4)主机字节顺序: 大端或小端
     网络字节序 :  大端
(5)转换函数
  主机字节序到网络字节序
u_long  htonl (u_long hostlong);
u_short htons (u_short short);
  网络字节序到主机字节序
              u_long  ntohl (u_long hostlong);

u_short ntohs (u_short short);




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leonban

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值