网络编程 - 计算机基础 - 总结

1.计算机基础知识:
作为应用开发程序员,我们开发的软件都是应用软件,而应用软件必须运行于操作系统之上,操作系统则运行于硬件之上,
应用软件是无法直接操作硬件的,应用软件对硬件的操作必须调用操作系统的接口,由操作系统操控硬件。


2.网络:
网络就是物理链接介质+互联网协议
1.物理链接介质:网线,交换机,路由器等网络设备
2.互联网协议就是计算机界的英语

3.互联网协议:
osi七层或tcp/ip五层或tcp/ip四层
    TCP/IP?
传输控制协议/因特网互联协议,又名网络通讯协议(Transmission Control Protocol/Internet Protocol)
       

每层运行常见物理设备(了解) 


4.五层协议详解:
物理层:主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0
数据链路层:定义了电信号的分组方式
网络层: ip + mac 就能找到全世界中唯一的计算机 ip->找到哪一个子网 mac->找到具体哪一台机器 ARP协议:把ip地址解析成mac地址
传输层:建立端口到端口的通信 端口范围0-65535,0-1023为系统占用端口 1.tcp 2.udp
应用层: 暴风 qq ... 软件

五层串起来:--->: 应用层产生数据head(固定长度)+data -> 传输层 -> 网络层 - > 数据链路层 -> 物理层

5.传输层详解:
传输层有两种协议,TCP和UDP

   以太网头  ip头  tcp头  数据

    1.tcp: 流式协议,像水流一样发数据,可靠传输 最可靠的方式就是只要不得到确认,就重新发送数据报,直到得到对方的确认为止。
tcp的3次握手和4四挥手
2.udp: 不可靠传输,client一直发数据 不需要 对方回应 断电了或者网络出问题 client 不管
总结:
tcp:可靠,效率低
udp: 不可靠,效率高

6.网络编程/scoket 编程:
参考: http://www.cnblogs.com/linhaifeng/articles/6129246.html
socket 就是 == 片面说: ip + 端口
socket两大家族(两种套接字的类型):
1.基于文件类型的套接字家族 AF_UNIX 一台机器上 两个软件通信
2.基于网络类型的套接字家族 AF_INET 基于网络通信
socket工作流程:

 

 

 



posted @ 2018-03-20 10:39  Alice的小屋  阅读(211)  评论(0编辑  收藏  举报