내일배움캠프 Node.js 스탠다드 반 - 6

OSI 7계층 - 전송 계층
- 네트워크 구성요소와 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공.
- 서로 다른 호스트에서 동작하는 애플리케이션 프로세스들 간의 논리적 통신(logical communication)을 제공
논리적 통신
- 애플리케이션 관점에서 보면 프로세스들을 동작하는 호스트들이 직접 연결된 것처럼 보인다는 것을 의미
- 네트워크 라우터가 아닌 종단 시스템에서 구현.
- 세그먼트로 만들기 위해 작은 조각으로 분할하고, 각각의 조각에 트랜스포트 계층 헤더를 추가함으로써 수행. 이것을 네트워크 계층에 전달하고, 여기서 세그먼트가 네트워크 계층 패킷(데이터그램) 안에 캡슐화되어 목적지로 전달.
- 프로세스에서 받은 메시지를 송신 측의 트랜스포트 계층에서 트랜스포트 계층 패킷으로 변환.
- 헤더 추가후 네트워크 계층에 전달.
- 데이터그램 안에 캡슐화.
- 전달.
- 해당 과정에서 네트워크 계층에서 세그먼트를 검사하는 일은 없음.
전송 계층과 네트워크 계층 사이의 관계
- 전송 계층은 서로 다른 호스트에서 동작하는 프로세스들 사이의 논리적 통신을 제공하지만 네트워크 프로토콜은 호스트 사이의 논리적 통신을 제공.
TCP(Transmission Control Protocol)
- 애플리케이션에게 신뢰적이고 연결지향형 서비스를 제공.
- 데이터를 보내기 전에 서로 "핸드셰이크"를 먼저 해야 하므로 연결지향형(connection-oriented)임.
- 세 방향 핸드셰이크(three-way handshake)를 사용하는데, 이 방식은 총 3개의 세그먼트가 오고 감.
- 첫 번째 세그먼트는 클라이언트가 먼저 특별한 TCP 세그먼트를 보냄.
- 두 번째 세그먼트는 서버가 특별한 TCP 세그먼트로 응답.
- 세 번째 세그먼트는 마지막으로 클라이언트가 특별한 세그먼트로 다시 응답.
- 첫 2개의 세그먼트는 페이로드(애플리케이션 계층 데이터)가 없음.
- 세번째 세그먼트는 페이로드를 포함할 수 있음.
- 세그먼트의 크기는 최대 세그먼트 크기(maximum segment size, MSS)로 제한.
- 오류 제어는 TCP가 통신 중에 오류가 발생하면(프레임이 손상되었거나 손실 되었을 경우.) 해당 데이터를 재전송을 통해 오류를 복구하는 것인데, 이는 ARQ(Automatic Repeat Request)기법을 사용한 것이다.
전송 도중 발생한 부호 오류를 검출하고 정확한 정보를 재현하는 기술.
- 흐름제어는 송신 측과 수신 측의 데이터 처리 속도가 다를 때 송신 측의 속도가 빠르다면 수신 측 버퍼가 넘치는 오버플로우 문제가 발생하게 되는데, 이러한 상황에서 문제를 줄이기 위해 자신이 처리할 수 있는 데이터의 양으로 송신 측의 데이터 전송량을 조절하는 것이다.
- 혼잡제어는 송신측의 데이터 전달과 네트워크 데이터 처리 속도를 해결하기 위한 기법으로 네트워크의 혼잡 현상을 방지하고 송신측에서 보내는 데이터의 전송 속도를 제어하기 위한 기능. 라우터를 포함한 넓은 범위의 전송 문제를 다룸.
혼잡 = 네트워크 내 패킷의 수가 과도하게 증가하는 현상.
UDP(User Datagram Protocol)
특징
장점
- 무슨 데이터를 언제 보낼지에 대해 애플리케이션 레벨에서 더 정교한 제어
- 연결 설정 x
- 작은 패킷 헤더 오버헤드
단점
포트
- 논리적인 접속장소, TCP/IP를 사용할 때 클라이언트 프로그램이 네트워크 상의 특정 서버 프로그램을 지정하는 방법으로 사용.
- 포트 번호는 0 ~ 65,535까지 사용할 수 있다. 이 중에서 0 ~ 1023번 까지의 포트 번호는 주요 통신을 위한 규약에 따라 이미 정해져 있는 포트.
자주 사용되는 포트 번호
| 번호 | 프로토콜 | 통신 프로토콜 | 설명 |
|---|
| 80 | HTTP | TCP | 웹 서버 접속 |
| 443 | HTTPS | TCP | 웹 서버 접속(SSL) |
| 110 | POP3 | TCP | 메일 읽기 |
| 25 | SMTP | TCP | 메일 서버간 메일 전송 |
| 22 | SSH | TCP | 컴퓨터 원격 로그인 |
| 53 | DNS | UDP | DNS 질의 |
| 123 | NTP | TCP | 시간 동기화 |
| 20 | FTP | TCP | 데이터 전송 |
| 21 | FTP | TCP | FTP 제어 |