9월 22일
라즈베리파이
집에서 컴퓨터할 때, 국내/외 가리지 않고 인터넷에 연결해서 어느 서버로 접속했다고 하자.
어떻게 메시지를 주고 받는가.
흐름에 대한 개념을 잡고 디테일을 보도록 하자.
인터넷 통신의 흐름은 택배와 비슷하다.
ex) 철수 -> 영희 선물을 보낸다고 하자. = 철수는 택배기사에게 선물 상자를 주고 택배 기사는 영희 집에 도착해서 넘긴다.
철수는 서울에 있고 영희는 부산에 있다. 서울, 부산 domain
철수네 집:철수가 선물을 샀음. Host(EndPoint, EP)
철수 Program(Process)
선물 Data(payload)
-> 포장 뽁뽁이 header를 붙인 data : segment(ip는 없음)
-> 포장 상자 송장이 붙은 상자를 가리켜 packet(ip와 header가 모두 포함)
-> 송장 IP 보낸 사람 주소 이름 받는 사람 주소 이름 등이 있음
-> 택배기사 수거 / 택배기사 : router외부 쪽으로 나가게끔 하는 것.
바깥과 구분짓는 문 : gateway. 따라서 내부 통신에서는 gateway가 필요없음.
택배회사 : 통신사(ex sk, lg, kt) ISP;Internet Service Provider
-> 물류센터 라우터와 라우터를 거쳐 최종 라우터까지 감.
-> 집하장 역시 gateway를 마주함.
-> 영희 엄마 filtering하고 있음. inspector임. 즉, firewall
: 철수가 보냈음. 근데 맘에 안 들었음. 폐기 처분.
: 언박싱
영희 송장에 붙어있는 주소 : ip, 이름 : port
: 포트를 보고 어떤 프로세스로 갈지 결정함
: 영희가 받고 전화를 했다. ACK
: 영희로부터 연락이 없어서 다시 보낼 수도 있다.
영희네 집 Host
통신관련 내용 대략 330 쪽부터
p.334 OSI 7계층
L7 Application / 지금은 5,6,7 의미가 없음. 다 합쳐서 application
L6 Presentation /
L5 Session /
L4 Transport / TCP/UDP, port number 할당
L3 Network / IP(주소);논리 주소
L2 Data Link / MAC address;물리 주소, LANCARD(통신칩의 주소)
L1 physical / UTP cable, 광 cable, Wifi 이런 거에 대한 정의를 내림.
IP는 같아도 프로세스를 여러 개 띄울 수 있다. 노래와 웹서핑을 같이 한다든가. 이런 구분을 위해 포트 존재.
IP구조 IPv4 / IPv6는 128bit임.
Host IP 10.10.16.225 각 8bit. 따라서 0-255. 이 중에서 양 끝 자리에서 0과 255는 사용하지 않음.
Subnet MASK 255.255.255.0 c class
둘을 & 연산함.
10.10.16.0 앞 3개의 숫자를 지니고, 이 숫자가 같은 애들은 그냥 통과. arp 개념 필요. 대충 넘어감.
DNS setting도 함.Domain Name System
OSI 7 Layer 개념
Application / Data /payload
Port 번호 / Process 구분 / segmant port/pl
IP 주소 / 컴퓨터 host 구분 / packet ip/port/pl
MAC / 물리선 결정 / mac/ip/port/pl => frame
물리 / cable, 광
tracert www.naver.com
거쳐가는 router를 알려줌
----
TCP / UDP
Transmission Control Protocol. 연결지향형 Webpage
User Datagram Protocol. 속도지향형 Game, 전화통화
보안, 연결,
p. 343 socket
socket coding Lib. 사용 ** server에서 사용하는 아이.
socket fopen **bind **listen **accept *connect * write/read *sent to *read/new *recvfrom *close *shutdonw
connect clinent 에서 사용
wirte / send TCP 전송함수
send to UDP 전송함수
readd/recv TCP 수신함수
recvfrom UDP 수신함수
나머지 공통
p. 359 ~ p. 362 server client echo socket 프로그램
server program
echo program 따로 만들어야 함
1. 서버가 실행
2. client 서버에 connect()
3. client가 서버에 요청 메시지를 보낸다.
3,4반복
4. 서버가 client가 응답 메시지를 보낸다.
5. client 소켓을 닫는다. close
6. 2로 돌아간다. (서버는 안 꺼지는 게 기본. 업그레이드할 때나...)
127.0.0.1은 local ip로 정해져있다고 함.