网络传输
首先物理层连通 根据收件人的ip 与自己的子网掩码进行运算判断是否在同一局域网内 如果在同一局域网内向所有机器发包 目标ip收到后把它自己的mac地址返回回来 如果不在同一局域网 会交给默认网关 由网关转发 判定与收件人相同的局域网内每台机器发一份 目标ip收到后把它自己的mac地址返回回来 目标ip收到后 会根据端口号找到计算机上相应的软件
port 端口 0-1024为系统端口 1025-65535用户可以用 socket 是用ip+port结合标识互联网中唯一主机位置 ip和mac绑定 程序启动可以开多个进程 多个线程 端口可以标识程序
socket原理
系统内存分为: 用户态内存 系统内核态内存
应用首先在用户态内存中存储 socket发送内容要通过用户态内存 读取到系统内核态内存 操控物理硬件网卡发送内容
socket监听自己的网卡 网卡接收到内容 交给系统内核态 用户态内存从系统内核态内存读取内容
send往自己的系统太内存放 通过物理网卡发送
客户端发送的为回车 内核态缓存没有东西 物理网卡不会发送
recv :不可以发送回车 Tcp
recvfrom:可以发送回车 Udp