분산되어있는 컴퓨터들을 연결한 통신망으로, 서로 데이터를 교환한다.
데이터를 주고 받을 때 데이터의 흐름을 각 구간별로 나눠 놓은 것
컴퓨터에서 데이터가 빠져나가고 들어올 때 거치는 단계들
각 단계에서 필요한 프로토콜이 있다.
1. TCP/IP 4계층 모델
2. OSI 7계층
네트워크를 통해 전달되는 데이터로 형식화된 블록.
제어 정보(헤더, 푸터)와 사용자 데이터(페이로드)로 이루어진다.
각 단계에서 패킷의 모양이 다르고, 부르는 이름도 다르다.
데이터를 전송할 때 (인캡슐레이션)
각 단계를 지나면서 헤더에 각 계층에 맞는 프로토콜들이 추가된다.
데이터를 수신할 때 (디캡슐레이션)
각 단계를 지나면서 패킷을 받고 프로토콜을 하나씩 확인하면서(까면서) 데이터를 확인하는 과정.
출처
https://www.youtube.com/watch?v=Av9UFzl_wis&list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi
url과 데이터를 사용해 수신 시의 각 계층에서 필요한 정보를 프로토콜에 맞게 추가한다.
전송 시에는 단지 헤더(프로토콜)만 붙이는 역할을 하는 것.
7계층 - http프로토콜에 따라 데이터 포장
4계층 - 패킷 분해, 포트 번호 붙힘
3계층 - 논리적 주소인 ip주소 설정
2계층 - 물리적 주소인 MAC주소 설정, 전송되는 데이터 흐름/순서 조절, 오류처리
1계층 - 디지털 데이터를(0, 1)을 물리적인 전기 신호로 바꾸고 다른 노드로 전달(출력)
각 계층에 맞는 헤더를 까보면서 그 안에 들어있는 정보로 처리를 하는 것.
1계층 - 물리적인 전기 신호를 디지털 데이터(0, 1)로 바꾸고 2계층으로 전달(입력)
2계층 - 들어오는 데이터 흐름/순서 조절, 오류처리
3계층 - ip주소를 확인해 맞다면 4계층으로 전달하고, 아니라면 다음 라우터에게 전달
4계층 - 패킷 조합, 포트 주소를 확인해 애플리케이션에 전달
7계층 - http프로토콜에 따라 데이터를 처리
라우터
스위치
공통점
특정 애플리케이션을 찾기 위한 포트번호를 붙인다/찾아간다
차이점
TCP
데이터를 정확히 전달하고 순서를 보장하는 신뢰성 있는 데이터 전달을 위한 기능이 있음.
쓰리웨이 핸드쉐이킹을 통해 통신이 가능한지 사전 확인
분할한 패킷에 일련번호를 붙이고/그대로 조합
패킷이 중간에 분실됐다면 재선송
문서의 전달에 적합
이런 과정들 떄문에 UDP보다 속도가 느림
UDP
쓰리웨이 핸드쉐이킹
TCP에서 실제 데이터를 전달하기 전에 임의의 패킷을 보내 클라이언트-서버가 잘 연결되는지 사전 확인을 하는 것.
들려?(SYN) -> 응 들려.(ACK) 너도 들려?(SYN) -> 응 나도 들려.(ACK) 그럼 데이터 전달할게
포웨이 핸드쉐이킹
연결을 끊는 절차
연결 끊고 싶어(FIN) -> 알겠어(ACK) -> 나머지 데이터 전달 -> 다 보냈으니까 끊을게(FIN)
-> 응(ACK)