본문 바로가기

네트워크

네트워크 - 전송 계층의 역할

들어가기 앞서, 라우터는 서로 다른 네트워크가 효율적으로 데이터를 송수신 할 수 있게 합니다. 더 정확히 라우터는 해당 목적지까지 어떤 경로로 가는 것이 좋은지를 알려줍니다. IP주소는 어떤 네트워크의 어떤 컴퓨터인지를 식별할 수 있는 값이다.


물리 계층, 데이터 링크 계층, 네트워크 계층 3계층만 있으면 목적지에 데이터를 보낼 수 있다. 하지만 데이터가 손상되거나 유실되더라도 이들 계층에서는 어떤 것을 해줄 수 없다. 목적지에 신뢰할 수 있는 데이터를 전달하는 역할을 하는 것이 전송 계층이다. 전송 계층의 역할은 한 가지가 더 있다. 전송된 데이터의 목적지가 어떤 에플리케이션인지 식별하는 기능이다.

 


TCP

연결형 통신이다. 여러 계층와 마찬가지로 송신할 때 헤더 캡슐화 수신할 때 헤더 역캡슐화를 진행한다.

 

TCP 헤더에는 연결의 제어 정보를 기록하는 코드 비트(6비트)가 있다.

 

코드 비트는 각 비트별로 역할이 있고 초깃값은 0이고 비트가 활성화되면 1이 된다.

 

코드 비트(초깃값)

URG ACK(애크) PSH RST SYN(씬) FIN
0 0 0 0 0 0

 

일단 씬은 연결 요청/애크는 확인 응답이라고 알자

 

3-way 헨드세이크

전송 계층에서는 신뢰할 수 있는 데이터를 전달하는 역할을 한다고 했다. 이를 가능케하는 것이 3-way핸드셰이크이다. 전송계층에서는 3-way핸드셰이크를 통해 연결을 확립한다.

 

컴퓨터1(수신)/컴퓨터2(송신) 컴퓨터가 데이터를 송수신한다고 해보자. 해당 과정에서 일어나는 3-way핸드셰이크를 보자.

 

먼저 컴퓨터 1에서 연결 확립을 요청(SYN)한다. 이를 확인한 컴퓨터 2가 연결 확립을 응답(ACK)하고 연결 확립을 요청(SYN)한다. 그럼 이제 마지막으로 컴퓨터 2의 SYN을 확인한 컴퓨터 1이 다시 연결 확립 응답(ACK)을 한다.

 


포트

네트워크 계층에서는 캡술화를 할 때는 IP 헤더를 붙인다.

IP 헤더에는 출발지 주소/목적지 주소가 존재한다. 마찬가지로​ TCP 헤더에도 출발지, 목적지 주소가 담긴다.

 

네트워크에서는 IP 주소가 담겼다면 TCP에는 포트 주소가 담긴다.

 

포트 번호는 0 ~ 65535번을 사용할 수 있다. 0 ~ 1023번 포트는 주요 프로토콜이 사용하다록 예약되어 있다.

대표적으로 HTTP(80)/FTP(21)/SSH(22) 포트가 존재한다.