Notice
Recent Posts
Recent Comments
Link
«   2024/07   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

개발공부일지

NodeJS - network, OSI 7계층, host, 프로토콜, port 본문

NodeJS

NodeJS - network, OSI 7계층, host, 프로토콜, port

보람- 2023. 8. 30. 14:33

목차

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 배우는!

     → 직접 라이브서버를 만드는것!!!