Application Layer 는 사용자가 다루며, 이를 실행시키면 네트워크 프로세스가 되며. 사용자 계층의 계층이다. OS가 제공하는 서비스 형태를 받는다.
Transport Layer
트랜스포트 계층은 OS 내부에 구현되어 있다. 결국 해당 계층은 UDP 와 TCP를 다루는 이야기이다. 애플리케이션 계층에서 만들어진 데이터의 단위를 Message라고 한다. ex. http message 이 해당 데이터가 트랜스포트 계층으로 내려오면 Segment 라고 부르는 전송단위에 들어간다. 트랜스포트 계층에서 네트워크 계층으로 내려오면 전송 단위인 Packet 으로 해당 데이터가 들어간다.
이렇게 데이터가 계층적으로 순차적으로 움직이며 Encapsulation 이 되고 있는 것이다.
네트워크 계층과 트랜스포트 계층의 차이는 논리적인 커뮤니케이션의 단위이며 네트워크 레이어는 라우터들이 어떻게 연결되어있는지에 대한 이야기이다.
TCP
- Reliable in-order delivery
사용자가 보내는 데이터가 유실되지 않고 목적지까지 도달한다.
사용자가 보내는 데이터가 순서대로 목적지까지 도달한다.
- flow-control & congestion-control
사용작 1GB 데이터를 TCP를 통해 보낸다. 속도는 조절 해야한다. 속도 조절에 대한 이야기이다. (목적지가 받아들일 수 있는 속도 고려(flow-control), 현재 네트워크의 상태 고려(congestion-control))
UDP
아무것도 하지 않는다.
Mutiplexing & Demultiplexing
트랜스포트 계층에서 제공하는 기본적인 기능
하나의 머신에서 여러 개의 프로세스들이 존재하고 개별 프로세스들은 개별 소켓이 있을 것이다. 해당 소켓들이 다른 머신과의 네트워크를 하기 위해선 하나의 통로를 거쳐야하는데 이 과정에서 멀티플렉싱이란 표현이 사용된다.
예를 들면 멀티플렉싱 같은 경우 여러 개의 인풋에 하나의 아웃풋이 있는 상태이고. 디멀티플렉싱은 하나의 인풋이 여러개의 아웃풋으로 나타나는 형태를 의미한다. 센더 측에서 여러 개의 프로세스가 각자의 소켓을 가지고 메세지를 보내게 된다면 TCP or UDP 를 통해서 이 과정에서 멀티플렉싱이 일어나고 리시버 측에서는 디멀티플렉싱이 일어난다.
트랜스포트 계층은 소켓 인터페이스를 직접적으로 다루는 계층이기 때문이다.
디멀티플렉싱을 살펴보면,
한 통로로 들어와서 패킷 받아내고 세그먼트 뽑아내는 것. 그 중에서 어느 특정 소켓으로 데이터를 보낼 것인가? 결정에 대한 문제. 이 과정에서 포트번호가 필요하다. 어떤 소켓으로 데이터를 보낼 것인지에 대해서. 이 과정에서 포트번호를 통해 판단하는 것이다. 세그먼트 데이터를 살펴보면 헤더 필드 일부에 source port 와 dest port 가 있다. (센더와 리시버 측에서의 각각의 포트번호)
UDP의 디멀티플렉싱
단순히 포트 번호만 보고 UDP는 디멀티플렉싱이 이루어진다. UDP에서의 디멀티플렉싱은 dest port 만 보고 이루어진다.
TCP의 디멀티플렉싱
source IP Address
source Port Number
dest IP Address
dest Port Number
- source port #
- dest port #
- length
- checksum
- Error detection
- Add checksum bits
- checksum 을 통해 통과여부를 확인. 통과되면 정상, 통과되지 않으면 에러
- Feedback
- Acknowledgement(ACKs)
- Negative acknowledgement(NAKs)
- 피드백에 따라서 재전송할지에 대해서 결정
정리 )
- Transport Layer 란
- Transport Layer 에서 만들어지는 데이터의 단위는
- TCP 특징 (간략히)
- Reliable / In - Order Delivery 가 무엇인가
- Flow control & Congestion control 은 무엇인가
- 멀티플렉싱 / 디멀티플렉싱은 무엇인가
- 포트번호는 Transport Layer 에서 왜 어떻게 작용하는가
- checksum 이란
- 패킷에 대한 에러가 있는 경우 이를 확인하기 위한 메커니즘은 무엇인가
- Sequen Number 란
'네트워크 > 네트워크 강의 들은 것 정리' 카테고리의 다른 글
20180416 7 : TCP 상세설명 (0) | 2018.04.16 |
---|---|
20180415 6 : TCP, sender & receiver (0) | 2018.04.15 |
20180412 4 : DNS (0) | 2018.04.12 |
20180411 3 : Application Layer, smtp 및 소켓 (2) | 2018.04.11 |
20180410 2 : Application Layer, http protocol (0) | 2018.04.10 |