개발공부일지
NodeJS - network, OSI 7계층, host, 프로토콜, port 본문
목차
1. OSI 7계층
2. 7계층 식별자
3. Host
4. 프로토콜
5. 3-way-handshake
6. Port
1. OSI 7계층
- 1계층 physcal layer : LAN 랜선한테 아날로그식(예를 들면 010101)으로 전기흐름을 쏘고 상대 PC 랜카드는 받은 아날로그를 디지털로 전환해주는 역할을 한다.
- 2계층 data-link layer : Driver는 010101 데이터를 번역기를 돌려서 커널에 전달한다
- 3계층 network layer : IP
- 4계층 transport layer : TCP는 프로토콜 소켓을 타고 애플리케이션에 보내준다.
- 5계층 session layer
- 6계층 presentation
- 7계층 application
2. 7계층 식별자
- 1,2계층 : MACaddress 랜카드 자체에 존재하는, 바뀌지않는것
- 3계층(ip) : ipaddress 내 컴퓨터에 부여되는, ip 번호는 바뀔수있다!
- 4계층(tcp) : port
- application : process
3. Host
- 네트워크가 되는 컴퓨터(디바이스)
- ip가 있는(인터넷이되는) 컴퓨터를 host라고 한다
- 로컬호스트 내 컴퓨터를 말한다.
① End-Point : 호스트 도착지점
② Switch : 스위칭, 라우팅이라고도 하며 데이터를 보낼때
- 라우팅 테이블 (고속도로의 이정표같은것)을 통해서 도착지점인지 알아가는것
- 만약 1번에서 8번까지 컴퓨터가 있을때 (같은 랜선일경우)
- 1번컴퓨터에서 8번 컴퓨터로 데이터를 보낸다면 8번의 IP 주소를 확인하게된다.
- 데이터를 보낼때 컴퓨터 안에서 프로세스 아이디까지 다 지정을 해주어야함
4. 프로토콜
- 정해진 약속, 규정
- 예를들면 우편을 보낼때 주소,이름,우편번호를 작성하는것처럼
- 데이터를 보낼때 상대방이 받았는지 못받았는지 검증처리가 있다.
① TCP
- 속도보다는 안전성을 선택한것
- pc끼리 연결이 되어있는지 검증까지한다.
- 대부분의 네트워크에서 사용한다.
② UDP
- 구현이 적고 난이도가 높다
- 데이터 손실까지 구현을 해야한다.
- 연결되었는지의 검증은 안한다.
5. 3-way-handshake
- client : 데이터를 보내는 쪽
- server : 데이터를 받는 쪽
- Listen 상태여야한다!
- 클라이언트가 SYN 1을 주고 서버에 주고
- 서버는 클라이언트한테 SYN에 +1 을해서 SYN 2와 ACK 를 돌려주고
- 클라이언트는 받은걸로 확인하고 연결작업이 끝남, 그러고 서버한테 ACK를 돌려준다
- 서버는 ACK를 받고 확인하면 연결작업이 끝남으로 보내려고 했던 데이터를 보낸다.
- 내가(서버) aws에 listen 상태라면 클라이언트는 브라우저이다!
- 브라우저 주소창에 IP주소와 port가 적혀있는데 이걸 외우지 다 외울수없어서 도메인이 생겨났다.
6. Port
- 프로세스 식별자로 port를 사용한다.
- 포트번호는 0 ~ 65535 으로 0 ~ 2000번대는 규격으로 지정되어있어서 대부분 3000번대부터 사용한다고한다.
- 라이브서버 5500
- 로컬호스트 127.0.0.1
※ 컴퓨터의 랜카드는 1개가 아니라 여러개일수있다! (무선, 유선랜선..등등)
- ip도 주소가 여러개가 있을수있어
※ 헷갈리지말기!!
- apache 프로그램을 설치하고 실행시키는 순간 프로세스에 올린것!
- AWS 만들면서 방화벽 (인바운드 아웃바운드 설정했던것 ) 디폴트로 port 80을 준것
※ 포트포워딩
- 80포트를 많이 쓰고있는것, 방화벽에 5000번을 열어서 클라이언트한테 5000번을 주고 그걸 80번에 토스해준것
※ 앞으로 nodejs로 네트워크를 구축하고 내장 라이브러리를 사용해서 웹페이지를 만들고 나서 express 배우는!
→ 직접 라이브서버를 만드는것!!!
'NodeJS' 카테고리의 다른 글
NodeJS - Response Message class문법으로 만들기 (0) | 2023.09.07 |
---|---|
NodeJS - net 모듈을 사용해서 TCP 구현 (0) | 2023.08.31 |
NodeJS - 진수 / Buffer(내장모듈) / writeStream (0) | 2023.08.29 |
NodeJS - 내장 모듈, fs, path, readFile, writeFile / 외장 모듈, NPM, dotenv (0) | 2023.08.28 |
NodeJS - 기초 (0) | 2023.08.25 |