-
[2022.3.6.] 네트워크 심화코드스테이츠 43기 2023. 3. 6. 21:51
패킷교환방식
패킷교환방식은 패킷이라는 단위로 잘게 나누어 전송하는 방식이다.(소포를 보내듯이)
각 패킷에는 출발지와 목적지 정보가 있고 이에따라 가장 효율적인 방식으로 이동할 수 있다.
인터넷프로토콜(IP)는 풀발지와 목적지의 정보를 IP주소라는 특정 숫자값으로 표기하고 패킷 단위로 데이터를 전송하게 되었다.
IP패킷
IP패킷에는 우체국 송장처럼 전송데이터를 무사히 전송하기 위해 출발지IP,목적지IP와 같은 정보가 포함되어있다.
단점도 존재한다.
- 비연결성: 패킷을 받을 대상이 없거나 서비스 불능상태여도 그대로 전송한다.
- 비신뢰성: 서버가 데이터를 전달하던 중 장애가 생겨 패킷이 중간에 소실되더라도 클라이언트는 이를 파악할 방법이 없다.
- 전달 데이터의 용량이 클 경우 이를 패킷단위로 나눠 데이터를 전달하는데, 이 패킷들은 서로 다른노드를 통해 전달 될 수 있다 ->클라이언트가 의도하지 않은 순서로 서버에 패킷이 도착할 수 있다.
네트워크 프로토콜계층은 OSI계층과 TCP/IP계층으로 나눌 수 있다. IP프로토콜보다 더 높은 계층에 TCP프로토콜이 존재하기 때문에 앞서 다룬 IP프로토콜의 한계를 보완할 수 있다.
*TCP/IP 4 계층은 OSI 7 계층보다 먼저 개발되었으며 TCP/IP 프로토콜의 계층은 OSI 모델의 계층과 정확하게 일치하지는 않는다. 실제 네트워크 표준은 업계표준을 따르는 TCP/IP 계층에 가깝다.
1.HTTP메시지가 생성되면 소켓을 통해 전달된다.
프로그램이 네트워크에서 데이터를 송수신할 수 있도록, 네트워크 환경에 연결할 수 있게 만들어진 연결부가 네트워크 소켓이다.
2.IP패킷을 생성하기전 TCP세그먼트를 생성한다
3.이렇게 생성된 TCP/IP패킷은 LAN카드와 같은 물리적 계층을 지나기 위해 이더넷 프레임워크에 포함되어 서버로 전송된다.
TCP세그먼트에는 IP패킷의 출발지 IP와 목적지 IP정보를 보완할 수 있는 출발지 PORT,목적지 PORT,전송제어,순서,,검증정보등을 포함한다.
먼저 클라이언트는 서버에 접속을 요청하는 SYN패킷을 보낸다.
서버는 SYN요청을 받고, 클라이언트에게 요청을 수락한다는 ACK와 SYN이 설정된 패킷을 발송하고 클라이언트가 다시 ACK으로 응답하기를 기다린다.
클라이언트가 서버에게 ACK를 보내면 이 이후로부터 연결이 성립되며 데이터를 전송할 수 있다.
만약 서버가 꺼져있다면 클라이언트가 SYN을 보내고 서버에서 응답이 없기때문에 데이터를 보내지 않는다.
TCP는 데이터 전송이 성공적으로 이루어진다면 이에 대한 응답을 돌려주기 때문에 IP패킷의 한계인 비연결성을 보완한다.
만약 패킷이 순서대로 도착하지 않는다면 TCP세그먼트에 있는 정보를 토대로 다시 패킷 전송을 요청할 수 있다.
이를 통해 IP패킷의 한계인 비신뢰성(순서를 보장하지 않음)을 보완할 수 있다.
UDT는 IP에 PORT,체크섬 필드 정보만 추가된 단순한 프로토콜이다.
TCP에 비교해 신뢰성은 낫지만 빠른속도를 보인다.
HTTP3는 UDP를 사용하며 이미 여러 기능이 구현된 TCP보다는 하얀 도화지처럼 커스터마이징이 가능하다는 장점이 있다.
*체크섬은 중복검사의 한 형태로, 오류정정을 통해 공간이나 시간속에서 송신된 자료의 무결성을 보호하는 단순한 방법이다.
'코드스테이츠 43기' 카테고리의 다른 글
[2023.3.13] 섹션3 기술면접준비 (0) 2023.03.13 [TIL] 2023.3.9.(목) (0) 2023.03.09 [TIL] 2022..3.2. (백준 1629번,백준 11444번 풀어보기) (0) 2023.03.02 [2022.2.28.] (0) 2023.02.28 [TIL] 2022.2.24.(금) 상태관리(리덕스) (0) 2023.02.24