-
(2) 인터넷 통신 - IP / TCP,UDP / PORTHTTP 웹/Http 웹 기본 2021. 6. 13. 21:26
1. 인터넷 통신
복잡한 인터넷 망을 통해 두대의 컴퓨터가 연결됨
이러한 통신을 하기 위한 규약이 있고 이가 IP(Internet Protocol) 임
1-1) IP (internet protocol)
통신하기 위한 규약의 총칭
통신규약을 따르는 통신 과정은 다음의 일련의 process를 거친다
(a) 두대의 컴퓨터 모두 ip 주소가 있어야 함
(b) 클라이언트(computer 1) IP 패킷 이라는 통신 단위로 데이터 전달
> 다음과 같이 패킷에 대한 정보를 추가로 기술해주어야 함
> 노드를 연결하는 서버들 끼리 규약을 따르기 때문에 최종 서버로 전달 될 수 있음
(c) 서버(computer 2) 마찬가지로 답장 전달(반드시 응답 해야 함)
1-2) IP 프로토콜의 한계
- 비연결성
- 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 (ex PC 다운)
- 비신뢰성
- 중간에 패킷이 사라지면?
→ 모종의 이유로 lan이 끊기거나 node가 다운
- 패킷이 순서대로 도착하지 않으면 (동기 동작 아니므로 - 어떤 route로 갈지 모름)
→ 큰 패킷의 경우 보통 1500 byte로 끊는데 순서대로 도착하지 않을 수 있음
- 프로그램 구분
- 같은 ip를 사용하는 서버에서 통신하는 어플리케이션(응용프로그램)이 둘 이상이라면?
(ex 게임과 online music player 같이 사용하는 경우?) - 문제 해결
- TCP / UDP 사용!
2. TCP / UDP
2-1) 정의
IP 프로토콜만의 한계를 극복하기 위한 계층 중 하나
[계층 추가 설명▼]
더보기물데네전세표응
- 물리, 데이터링크, 네트워크, 전송, 세션, 표현, 응용
- 4 / 5 / 7 계층 등으로 나누는 경우가 있음
- 7 계층으로 나누는 이유
- 통신이 일어나는 과정을 단계별로 알 수 있음
- 때문에 그 단계만 수정하는 등 분리가 잘 되므로 - 응용 → 물리 혹은 물리 → 응용 계층으로 갈때 각 단계에서 헤더를 추가하는 Encapsulation 과정을 거치게 됨
- 수신 과정에선 Decapsulation으로 헤더를 하나씩 제거
- 물리
- 리피터, 케이블, 허브 등
- 데이터 / 전기 신호로 변화되어서 주고받는 물리적 계층
- 데이터를 전기적으로 전송하는 역할만 담당
- 0 / 1 로 이루어진 전기신호 데이터
- 리피터, 케이블, 허브 등
- 데이터 링크
- 브릿지, 스위치 등
- 물리 계층으로 송수신 되는 정보를 관리하여 안전하게 전달되도록 도와주는 역할(오류/흐름을 관리)
- 이 계층에서의 데이터 단위를 Frame이라고 칭함
- Mac 주소를 통해 통신. 프레임에 Mac 주소를 부여하고, 에러검출, 재전송, 흐름제어 등을 진행
- 하드웨어에 대한 주소개념(랜카드에 고유 맥 주소 존재)
아이피주소에서 맥주소로 변환되는 과정도 있음
Point to Point 데이터 전송
(추가 참조 : link)
- 브릿지, 스위치 등
- 네트워크
- 라우터, IP
- 데이터를 목적지 까지 가장 안전하고 빠르게 전달(최적의 경로를 설정한다는 것)
- 라우터를 통해 이동경로 결정하여 IP 주소를 지정, 해당 경로를 따라 패킷을 전달
라우팅, 흐름제어, 오류제어, 세그먼테이션 등을 수행
- 이 부분에서 사용되는 데이터 단위를 "패킷"이라고 함
- IP는 통신 규약의 총칭
- 라우터, IP
- 전송
- TCP, UDP
- TCP와 UDP 프로토콜을 통해 통신을 활성화
포트를 열어두고 응용 프로그램 / 어플리케이션이 패킷을 전송할 수 있도록 제공
- (a) TCP : 신뢰성, 연결지향적
(b) UDP : 비신뢰성, 비연결성, 실시간 - 기본 기능
- 오류 검출 및 복구, 흐름제어, 중복 검사
→ 3 way handshake / 4 way handshake 등 사용하여 검증 - 사용되는 기능
- Port 번호 사용
- 이 부분에서 사용되는 데이터 단위를 "Segment" 라고 함
- TCP, UDP
- 세션
- API, Socket
- 데이터가 통신하기 위한 논리적 연결을 담당
TCP / IP 세션을 만들고 없애는 책임 (OS 에서 담당하는 것일 듯?)
- API, Socket
- 표현
- JPEG, MPEG 등
- 받은 Segment를 표현으로 Mapping하는 곳
- 데이터 표현에 대한 독립성을 제공(네트워크에 종속적이지 않고 사용자에 맞는 데이터화)
- 데이터 암호화 / 복호화의 역할
파일 인코딩, 명령어 포장, 압축, 암호화 등
- JPEG, MPEG 등
- 응용
- Http, ftp, dns 등
- 최종 목적지
- 응용 프로그램 / 프로세스 / 어플리케이션 와 직접 관계하여 일반적인 응용 서비스를 수행
- 사용자 interface(패킷에 대한), 전자우편, 데이터베이스 관리 등의 서비스를 clinet가 이용 가능
- Http, ftp, dns 등
2-2) IP Stack
a) 프로그램 관점
b) 하드웨어 관점
메세지 프로그램을 예를 들면 위와 같이 동작하여 internet 상에 뿌려지게 됨
※ Ethernet Frame 은 lan card에 등록된 MAC 주소 등이 포함된 것
c) 전송되는 결과물
> 위의 HTTP / TCP / IP / Ethernet frame 그림의 일부분
※ 전송제어, 순서, 검증 정보 등이 포함되어있기 때문에 2-4) 번의 http 결점 보완이 가능!!
2-3) TCP 계층 특징
a) 정의
전송 제어 프로토콜 ( Transmission Control Protocol )
b) 특징
- 연결지향 - TCP 3 way handshake (가상 연결)
- 데이터 전달 보증
- 순서 보장
- 신뢰할 수 있는 프로토콜
- 현재 대부분 TCP 사용
2-4) TCP 3 way handshake
(a) HTTP 결점 보완 - 서버 동작여부
- 서비스 불능시 패킷 전송 : 신뢰성 syn으로 connect 체크
- ack 2번으로 신뢰성 up (요즘은 server ack에 같이 데이터 첨부해서 보냄)
- 물리적 연결이 아니라 논리적으로 연결되었다고 "가정"하는 것에 가까움
→ 실질적으로 전용 lan선을 direct 하게 꽃는게 아니라서
(b) HTTP 결점 보완 - 데이터 전달 보증
아마도 3 way 비슷하게 매번 전송시 체크하는 듯
(c) HTTP 결점 보완 - 순서 보장
드라이버등에서 받은 데이터 순서를 최적하 하는 방식도 있고
missing 된 데이터 시점부터 다시 보내라고 하는 방식이 있음
2-5) UDP 계층 특징
a) 정의
IP와 거의 동일함
PORT + Checksum 정도만 추가
※ checksum : 메세지 검증 기능
b) UDP 사용 이유
- TCP는 3 way handshake 등을 사용하고 있기 때문에 더 빠른 동작이 불가능
- UDP는 application level에서 추가 가능만을 구현하면 됨
→ 최근 UDP 뜨고 있음
더욱더 빠른 최적화를 위해
3. Port의 기능
PC는 하나의 IP만 할당되어있음
Application들이 하나의 ip안에서 구분하려고 사용할 때 IP뒤에 Port를 사용
참조
섹션 : 인터넷 네트워크
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard
반응형'HTTP 웹 > Http 웹 기본' 카테고리의 다른 글
(6) HTTP - Stateless (0) 2021.06.19 (5) HTTP - 모든 것이 http / Client Server 구조 (0) 2021.06.15 (4) URI & 웹브라우저 요청 흐름 - URI, 웹브라우저 요청 흐름 (0) 2021.06.14 (3) 인터넷 통신 - PORT, DNS (0) 2021.06.14 (1) 웹 기본 - curriculum (0) 2021.06.13 - 비연결성