Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 자바
- 모두의 네트워크
- 깃 연동
- HTTP
- 백준 5525번
- 데베
- SQL
- 문자열
- 스터디
- 머신러닝
- 모두를 위한 딥러닝
- 정리
- 모두를위한딥러닝
- 리액트 네이티브
- 모두의네트워크
- 백준 4949번
- 백준
- 리액트 네이티브 시작하기
- 깃허브 토큰 인증
- 네트워크
- 지네릭스
- 백준 4358번
- 데이터베이스
- 백준 4358 자바
- React Native
- 리액트 네이티브 프로젝트 생성
- 딥러닝
- 팀플회고
- 깃 터미널 연동
- 깃허브 로그인
Archives
- Today
- Total
솜이의 데브로그
6장 ) 전송 계층 본문
Reference : 모두의 네트워크
6. 전송 계층 : 신뢰할 수 있는 데이터 전송하기
전송계층은 목적지에 신뢰할 수 있는 데이터를 전송하기 위해 필요하다.
전송 계층에는 오류를 점검하는 기능이 있어 오류가 발생하면 데이터를 재전송하도록 요청한다.
또한 전송된 데이터의 목적지가 어떤 애플리케이션인지 식별한다.
연결형 통신과 비연결형 통신
신뢰성/정확성과 효율성
- 연결형 통신 : 신뢰할 수 있고 정확한 데이터를 전달하는 통신. 여러번 확인하고 보낸다
→ 연결형 통신 프로토콜에는 TCP 사용 - 비연결형 통신 : 효율적으로 데이터를 전달하는 통신. 확인 절차 없이 일방적으로 전송한다.
→ 비연결형 통신 프로토콜에는 UDP 사용
TCP의 구조
- TCP로 전송할 때 붙이는 헤더를 TCP 헤더라고 하며, 이 TCP 헤더가 붙은 데이터를 세그먼트라고 한다.
- 데이터를 전송하려면 '연결' 이라는 가상의 독점 통신로를 확보해야한다.
- 위의 그림 중 TCP Flags 부분에 코드비트 6비트에 연결의 제어 정보가 기록된다.
- 초깃값은 0, 비트 활성화 시 1
- 연결을 확립하려면 SYN와 ACK가 필요하다.
3-way handshake
- 통신 허가를 받기 위해 연결 확립 허가를 받기 위한 요청(SYN)를 보낸다
- 서버는 클라이언트가 보낸 요청을 받은 후에 허가한다는 응답을 회신하기 위해 연결 확립 응답 ACK를 보낸다. 동시에 서버도 클라이언트에게 데이터 전송 허가를 받기 위해 SYN를 보낸다.
- 서버의 요청을 받은 클라이언트는 허가한다는 응답으로 연결 확인 응답 ACK를 다시 보낸다.
- 연결을 끊을 때는 FIN과 ACK를 사용하여 연결 끊기위한 요청을 교환한다.
위의 과정에서 각각의 플래그 비트가 1로 변경된다.
일련번호와 확인 응답 번호의 구조
- 3-way handshake가 끝나고 나서 실제 데이터를 보내고 받을때는 TCP 헤더의 일련번호와 확인 응답 번호를 사용한다.
- 일련번호는 송신측에서 수신측에 이 데이터가 몇 번째 데이터인지 알려준다. (분할된 데이터의 번호)
- 확인 응답 번호는 수신측이 몇 번째 데이터를 수신했는지 송신측에 알려준다.
- 세그먼트 하나를 보낼 때 마다 확인 응답을 기다리는 대신 세그먼트를 연속해서 보내고 난 뒤 확인 응답을 반환하면 효율이 높아진다.
- 세그먼트는 일시적으로 '버퍼'에 저장한다.
- 대량으로 데이터가 전송되어 보관하지 못하는 것을 오버플로우라고 한다.
- 버퍼의 한계 크기를 tcp 헤더의 윈도우 크기라고 한다.
- 얼마나 많은 용량의 데이터를 저장해 둘 수 있는지를 나타낸다.
- 윈도우 크기의 초깃값은 3-way handshake 시에 판단한다.
포트 번호의 구조
- 어느 애플리케이션의 데이터인지 구분하도록 TCP 헤더에 출발지 포트번호와 목적지 포트번호를 저장한다.
- well-known ports : 0~1023번 포트. 일반적으로 사용하는 서버측 애플리케이션에서 사용
- random port : 1025번 이상. 클라이언트 측의 송신 포트로 사용
- 웹 브라우저로 접속할 때 웹 브라우저에는 임의의 포트가 자동으로 할당된다.
UDP의 구조
- 비연결형 통신이므로 데이터 전송시 시간이 걸리는 확인 작업을 일일이 하지 않는다.
- 데이터를 효율적으로 빠르게 보내는 것이 장점이다.
- 따라서 스트리밍 방식으로 전송하는 동영상 서비스와 같은 곳에 사용.
- UDP헤더가 붙은 데이터를 UDP 데이터그램이라고 한다.
- 상대방을 확인하지 않고 연속해서 데이터를 전송한다.
- 랜에 있는 컴퓨터나 네트워크 장비에 데이터를 일괄로 보낼 수 있으며, 이것을 브로드캐스트 라고 한다.
'CS > Network' 카테고리의 다른 글
6장 ) 리스폰스 헤더필드, 엔티티 헤더필드 (0) | 2021.10.28 |
---|---|
7장 ) 응용 계층 (0) | 2021.10.28 |
6장 ) HTTP/1.1 일반 헤더 필드, 리퀘스트 헤더 필드 (0) | 2021.10.15 |
5장 ) 네트워크 계층 (0) | 2021.10.09 |
5, 6장 ) 웹 서버, HTTP 헤더(1) (0) | 2021.10.09 |