自学嵌入式第三十五天:网络编程-网站
一、数据的封包和拆包
应用层:需要传输的数据;
传输层:在数据前加传输方式的头(eg:tcp的头20byte,udp的头8byte);
tcp头中的U(紧急数据)S(SYN)F(FIN)R(RESET)P(PUSH)A(ACK);
网络层:在数据前加双方网络IP的头(20byte);
ip头中的D表示能不能分片,M表示是不是最后一片;
ip头中的TTL(生命周期)
接口层:在数据前加双方物理地址MAC的头;
以上是封包过程,叫一帧数据,最大传输大小MTU1500;
接口层:在数据前检查双方物理地址MAC的头,对则拆掉头往下传,不对则丢包;
网络层:在数据前检查双方网络IP的头,对则拆掉头往下传,不对则丢包;
传输层:在数据前检查传输方式的头,对则拆掉头往下传,不对则丢包;
应用层:查看需要传输的数据;
以上是拆包过程;
二、TTL
最大查找次数,一般初值设64;
找网址时每找一次TTL-1;
TTL=0且没找到时,返回并表明找不到;
三、网络测试工具
telnet netstat ping arp wireshark tcpdump
wireshark:网络抓包工具,网络协议分析,网络调试;
使用:
1.sudo wireshark
2.选择网络设备
3.设置过滤条件port/ip
四、WWW万维网
使用统一资源定位符URL唯一表示互联网上的某个资源;
HTML(超文本标记语言)专门写网页的;
HTTP(超文本传输协议)是一个应用层协议,使用TCP连接传送,作用与b/s;
五、使用HTTP的URL:
http://<主机>:<端口>/<路径>
六、http的交互
1.三次握手
2.发送请求报文
3.等待服务器回复:响应报文+数据
4.断开连接