2020. 12. 10. 05:30ㆍComputer/Computer
본 내용은 '커니핸 교수의 Hello, Digital World' 책에서 네트워크-인터넷 관련 내용을 공부하고 정리한 내용입니다.
인터넷
1. 인터넷 개요
인터넷
프로토콜에 의해 묶인 네트워크 (+컴퓨터) 들의 모임
프로토콜(protocols)
일련의 규칙 ( 누가 먼저 말하고 어떤 응답이 이뤄질 수 있는지, 오류를 어떻게 처리할 것인지 등 데이터 형식에 대한 합의)
네트워크
두 대 이상의 컴퓨터들을 연결하고 서로 통신할 수 있는 것. 게이트웨이(Gateway) 또는 라우터(Router) 를 통해 다른 네트워크에 연결된다.
게이트웨이
서로 다른 네트워크로 이동하기 위한 관문
정보는 패킷이라고 하는 덩어리로 네트워크를 통해 이동한다.
패킷
지정된 형식의 바이트 시퀀스 (주소정보 + 패킷자체정보 + 전달하는 정보인 페이로드(payload))
인터넷에서 데이터는 IP패킷(internet protocol packet) 으로 전달된다.
IP패킷은 모두 같은 형식. 각 IP패킷은 여러개의 게이트웨이를 통과한다.
-> 특정 물리적 네트워크에서 IP패킷은 하나 이상의 물리적 패킷으로 전송될 수 있다.
Ex) 가능한 한 가장 큰 이더넷 패킷 (약 1500바이트)이 가능한 한 가장 큰 IP패킷(약 65000바이트)보다 훨씬 작기 때문에 큰 IP패킷은 여러개의 작은 이더넷 패킷으로 분할된다.
HOW TO WORK?
주소 : IP 주소(IP address)
자신을 식별할 주소. IPv4, IPv6
'중앙기관'은 연속적인 IP주소 블록을 '네트워크 관리자'에게 할당하고, 네트워크 관리자는 네트워크 상의 '호스트 컴퓨터'들에 개별주소를 할당한다.
따라서 각 호스트 컴퓨터에는 자신이 있는 네트워크에 따라 로컬로 할당된 고유한 주소가 있다.
데스크톱 : 영구적 / 모바일 : 동적. 적어도 장치가 인터넷에 다시 연결될 때마다 바뀐다.
이름 : 도메인 네임(Domain Name) www.google.com
도메인 네임 시스템(Domain Name System : DNS) : 이름과 IP주소 간 변환을 수행한다.
라우팅(Routing) - (Route 루트)
: 어떤 네트워크 안에서 통신 데이터를 보낼 최적의 경로를 선택하는 과정 / 최단거리 or 최단시간
각 패킷에 대해 발신지에서 수신지까지의 경로를 찾는 매커니즘 <- 게이트웨이들이 제공
게이트웨이들은 어느 것이 어디에 연결되어 있는지에 대해 자기들끼리 라우팅 정보를 끊임없이 교환하고, 그 정보를 이용하여 각 수신 패킷을 최종 수신지에 더 가까운 게이트웨이 쪽으로 계속 전달.
프로토콜(protocol) : 규칙과 절차
- IP (Internet protocol) : 핵심프로토콜 : 전송 중인 정보에 대해 균일한 전송 매커니즘과 공통형식을 정의
- TCP (Transmission Control Protocol) : 전송제어 프로토콜 : IP를 사용하여 발신지에서 수신지까지 임의 길이의 바이트 시퀀스를 전송하는 안정적인 매커니즘 제공
- 고수준의 프로토콜들 : 웹 브라우징, 메일, 파일공유 등 우리가 '인터넷'이라고 생각하는 서비스를 제공하기 위해 TCP를 사용.
이 프로토콜들이 모두 합쳐져서 인터넷을 정의
응용, 표현, 세션 |
DHCP, FTP, DNS, HTTP, POP, SMTP … |
응용계층 |
전송계층 |
TCP, UDP, Segment |
전송계층 |
네트워크계층 |
IP Address: IPv4, IPv6 (Datagram) |
인터넷계층 |
데이터링크계층 |
MAC Address (Frame) |
네트워크 |
물리계층 |
Ethernet cable, wire … |
접근계층 |
OSI 표준 모델 |
|
TCP/IP 모델 |
2. TCP/IP 프로토콜
필수 2가지
IP : 인터넷 프로토콜 : 개별 패킷의 형식을 지정하고 패킷을 전송하는 방법을 정의
TCP : 전송제어 프로토콜 : IP 패킷을 데이터 스트림으로 결합하고 서비스에 연결하는 방법을 정의
-> TCP/IP
프로토콜 계층
애플리케이션 |
TCP |
IP |
물리계층 |
위로는 서비스 제공, 아래로는 의존
1) IP : '신뢰할 수 없고' '연결이 없는' 패킷 배달 서비스를 제공
- 각 IP 패킷이 자립적. 다른 IP 패킷과 관계 없음. IP에는 상태나 메모리가 없다.
- IP는 패킷을 얼마나 잘 전달하는지에 대해 보장하지 않는 '최선형(best effort)' 프로토콜
2) TCP : 하위 계층(IP)으로부터 신뢰할 수 있는 통신을 만들어냄. 자신의 사용자에게 신뢰할 수 있는 양방향 스트림을 제공
3. 상위 레벨 프로토콜
: 인터넷 서비스와 애플리케이션은 TCP를 전송 매커니즘으로 사용하지만, 필요한 기능에 특유한 자신만의 프로토콜을 가지고 있다.
Ex) HTTP, 웹
브라우저와 서버에서 사용되는 특히 간단한 프로토콜, Hyper Text Transfer Protocol
(+TCP/IP 와 HTTP 의 차이)
일단 동작하는 계층이 다르다.
TCP/IP 는 transport 계층에서 동작한다.(더 자세하게는, IP는 인터넷계층, TCP는 전송계층)
HTTP는 고수준의 애플리케이션 프로토콜 계층에서 동작한다.
HTTP가 TCP/IP 위에서 작동한다.(웹의 필수 4가지를 참고)
HTTP는 TCP/IP 위에서 어떤 형태로 웹에서 작동할지를 정해놓은 통신프로토콜일 뿐이다.(하이퍼텍스트를 전송하는 규약)
- 데이터 형태
TCP : byte array(binary)로 정보를 통신
HTTP : String 으로 정보를 통신
- 연결방식
TCP : 언제나 서버와 연결되어있어야 하며, request 없이도 receive가 일어남.
HTTP : keep-alive로 지속적인 연결은 가능하지만, 기본적으론 close 되어 있으며, request를 하여야만 receive가 일어남.
- 속도가 중요할땐?
TCP/IP 기반 소켓을 쓰는 것이 빠르다. 바인딩 과정 HTTP 변환 과정등이 생략되기 때문.
연결지향 / 동기식 통신이 필요하다면 소켓 통신을 이용해야 한다.
(+ 소켓)
- Internet socket : an end-point in the IP networking protocol
- 소켓은 TCP(Transmission Control Protocol)와 UDP(User DataGram Protocol)로 구분할 수 있다.
TCP는 신뢰할 수 있는 통신을 / UDP는 몇 가지 신뢰도는 포기하되 좀 더 직접적인 통신을 한다.
Ex) 친구에게 택배를 보낸다고 했을 때, 상자에 보낼 물건을 넣고 나의 이름, 주소 등의 인적사항과 친구의 집 주소를 적어주는 역할을 하는 것.
- Network Socket 정리 (추후 소켓에 대해서는 개념 정리 요)
: 컴퓨터 네트워크를 경유하는 프로세스 간 통신의 종착점.
오늘날 컴퓨터 간 통신의 대부분은 인터넷 프로토콜을 기반으로 하고 있으므로, 대부분의 네트워크 소켓은 인터넷 소켓이다. 네트워크 통신을 위한 프로그램들은 소켓을 생성하고, 이 소켓을 통해서 서로 데이터를 교환한다.
인터넷 소켓 구성요소
- 인터넷 프로토콜 (TCP, UDP, raw IP)
- 로컬 IP 주소
- 로컬 포트
- 원격 IP 주소
- 원격 포트
인터넷 소켓은 크게 두 개의 타입으로 분류할 수 있다.
- UDP 프로토콜을 사용하는 경우
- TCP 프로토콜을 사용하는 경우
'Computer > Computer' 카테고리의 다른 글
Hello, Digital World : 네트워크-웹, 데이터 (0) | 2020.12.10 |
---|