하드웨어적 연결 + 프로토콜
전화 통신의 예
- 전화국에 가입하여 전화기 설치(하드웨어적 연결)
- 수화기를 들고 전화번호를 누르면 상대방에게 신호가 전달되고, 상대방이 수화기를 들면 통신 시작(프로토콜)
파일 전송 프로토콜(File Transfer Protocol, FTP)
컴퓨터와 컴퓨터 간에 파일을 전송할 때 사용하는 프로토콜
HTTP(Hyper Text Transmission Protocol)
웹 페이지를 볼 때 사용하는 프로토콜
TCP(Transmission Control Protocol)와 IP (Internet Protocol)
인터넷을 이용할 때 사용하는 프로토콜
수 m ~ 수 km의 가까운 거리에 연결된 네트워크
인터넷에 연결된 컴퓨터를 보면 랜 카드(LAN card)가 달려 있고 LAN 선으로 연결됨
국가 전체를 연결하거나 국가 간에 연결되는 네트워크
수백 km 이상을 연결하는 장거리 네트워크
WAN 선
KT, SK, LG 인터넷망을 사용하면 외부에서 집까지 선을 연결해주는 선
공유기
외부에서 들어온 WAN을 집 안에 있는 LAN 기기에 나누어 주는 장치
👉 무선을 지원하는 경우 무선공유기
LAN과 장거리 네트워크인 WAN 사이의 네트워크대도시를 서로 연결블루투스나 RFID처럼 가까운 거리에 있는 기기 연결RFID처럼 수 cm 거리에서 통신하는 네트워크
20KHz(대역폭 20KHz)네트워크를 하나로 묶는 기술
LAN 제조사 마다 규격 및 프로토콜이 달라서 호환 불가
LAN 구조(토폴로지)의 종류
스타형 : 중간에 네트워크를 관장하는 시스템을 두고 방사형으로 기기를 연결
링형 : 모든 기기를 원형으로 연결
버스형 : 중앙에 데이터가 흐르는 버스를 두고, 여기에 기기를 붙여 네트워크를 구성
알파넷(ARPAnet)
미국에서 육군, 해군, 공군이 서로 다른 종류의 LAN을 구축하면서 서로 호환이 되지 않아 효율적으로 명령을 전달하기 어려웠음
1960년대 미국 국방성에서 1969년 알파넷(ARPAnet)을 구축함으로써 서로 다른 종류의 LAN을 선으로 연결
인터넷 등장 배경
네트워크 기술은 컴퓨터 간에 데이터를 편리하게 전송할 수 있게 하여 급속도로 보급
👉 그러나 규격이 제각각이고 프로토콜 간에 호환성이 없어 문제
👉 표준 없이 여러 회사에서 각자 규격을 가진 LAN들을 출시
👉 인터넷 등장
IP(인터넷 프로토콜)
네트워크와 네트워크 사이에서 데이터를 주고받는 규칙을 정한 프로토콜
TCP(전송 제어 프로토콜)
인터넷으로 받은 데이터를 목적지 프로그램에 전달하는 창구 역할을 하는 프로토콜
TCP 데이터 전송 단위 👉
세그먼트 segment
IP 데이터 전송 단위 👉패킷 packet
송신측(보낸 쪽)
수신측(받는 쪽)
영상 매체 : stream(파일 데이터 단위)
👉 TCP : segment
👉 IP : packet
= frame (장치에서 보는 단위)
중앙 집중식 P2P(centralized P2P)
일부 기능을 서버에 구현해 놓은 P2P 시스템
순수한 P2P(pure P2P)
서버가 없는 P2P 시스템
ex) 파일 공유 프로그램 토렌트, 비트코인으로 유명해진 블록체인
LAN
인터넷
응용 프로그램


각 계층은 헤더와 데이터 단위(Data Unit 또는 Protocol Data Unit / PDU)정의
서비스 데이터 단위(SDU) : 상위 계층이나 하위 계층 사이에 (다른 계층) 주고받는 것
프로토콜 데이터 단위(PDU) : 같은 계층 사이에서 주고받는 것
이 데이터 단위는 송신 측이나 수신 측의 다음 계층에 데이터 정보를 전송할 때 사용
보통 데이터 단위 👉 패킷
OSI 참조 모델 데이터 링크 계층의 PDU 👉 프레임
네트워크 계층의 PDU 👉 패킷
전송 계층의 PDU 👉 세그먼트로 라벨을 붙인다.

OSI 참조 모델에서 데이터는 응용 계층에서 하위 계층으로 순차적으로 전송
👉 물리계층과 응용 계층을 제외한 나머지 계층에서는 데이터의 시작부분과 끝부분에 헤더나 트레일러 형태로 정보를 추가
시작 부분에 추가되는 헤더는 데이터 링크 계층(2계층), 네트워크 계층(3계층), 전송 계층(4계층), 세션 계층(5계층), 표현 계층(6계층)의 데이터에 추가
끝부분에 추가되는 트레일러는 데이터 링크 계층(2계층)에만 추가된다.


송신측 시스템에서 수신 측 시스템으로 데이터를 전송하는 도중에 많은 중간 노드를 거친다.
실제 네트워크 프로토콜은 OSI 참조 모델의 7계층을 모두 사용하지 않고, 처음 세 계층(물리 계층, 데이터 링크계층, 네트워크 계층)만 사용
OSI 참조 모델의 7계층을 4계층으로 단순화 한 것 👉 TCP/IP 모델
현재는 대부분 TCP/IP 모델 사용
TCP/IP 모델의 4계층은 네트워크 접속 계층, 네트워크 계층, 전송 계층, 응용 계층
★★★★

네트워크에서 유선 혹은 무선으로 인접한 기기 간 연결을 담당
네트워크 연결선의 특징, 무선 연결 방식의 특징을 규정
비트(bit)를 전송
데이터 단위
데이터(프레임)를 받아 전기적 신호로 변환한 후 전송매체를 통하여 수신 측에 보냄리피터
신호의 세기가 약해지면 전기 신호를 복원하고 증폭
멀리 떨어져 있는 상대방과 통신할 수 있도록 파형을 정상으로 만드는 기능
but 최근에는 다른 네트워크 접속 장치가 리피터의 기능을 지원하기 때문에 리피터 쓸 필요 X
허브 👉 리피터 허브라고도 부르며, 실제로 통신하는 통로인 포트가 여러 개
리피터는 일대일 통신만 가능하지만 허브는 포트가 여러 개이므로 여러 컴퓨터와도 통신할 수 있는 접속 장치
인접한 기기 간에 오류 없는 데이터를 전송
물리 계층을 통하여 데이터를 주고받을 때 얼마나 빠른 속도로 데이터를
주고받을지, 받은 데이터에 오류가 없는지 등을 살펴봄
데이터 링크 계층에서는 비트를 프레임이라는 논리적 단위로 구성
전송하려는 데이터에 인접하는 노드(시스템)의 주소가 더해짐
주소는 최종 수신지의 주소가 아니라 전송되는 다음 노드의 주소가 됨
★ 트레일러
주소 지정
순서 제어 : 데이터를 순차적으로 전송하기 위해 프레임 번호 부여 기능 수행. 수신 노드에서 식별 번호를 추가하여 프레임의 순서 제어
흐름 제어 : 한 번에 전송할 수 있는 데이터양 조절, 연속으로 프레임을 전송할 때 수신 여부를 확인하는 기능 수행
오류 처리 : 오류 검출과 정정 기능을 수행하고, 오류가 발생한 프레임의 재전송 요구
프레임 : 데이터를 전송할 때 처리가 쉽도록 프레임 단위로 전송
동기화 : 헤더에는 수신 측에 프레임이 도착했음을 알리는 비트가 있고, 트레일러에는 프레임의 끝을 나타내는 비트와 오류를 제어하는 비트 등이 있음
데이터 링크 설정
데이터 링크 계층은 네트워크 접속 장치 간에 신호를 주고받는 규칙을 정하는 계층
가장 일반적으로 사용되는 규칙은 이더넷
이더넷은 허브와 같은 네트워크 접속 장치에 연결된 컴퓨터와 데이터를 전송받을 때 사용
이더넷 헤더
수신지 MAC 주소(6바이트), 송신지 MAC 주소(6바이트), 유형(2바이트)의 총14바이트로 구성
데이터가 동시에 케이블을 지나갈 때 충돌이 발생하지 않도록 데이터를 전송하는 시점을 늦춘다. 이더넷에서 데이터의 충돌을 막기 위한 규칙(시점을 늦추는 방법)으로는 CSMA/CD 방식을 사용 👉 무선은 CA
CSMA/CD에서 ★
CS : 데이터를 전송하려는 컴퓨터가 케이블에 데이터 신호 가 흐르고 있는지 확인하는 규칙
MA : 케이블에 데이터 신호가 흐르고 있지 않으면 데이터를 전송해도 된다는 규칙
CD : 충돌이 발생하는지 확인하는 규칙
허브에 연결된 컴퓨터 1은 이더넷 헤더에 데이터 수신지인 컴퓨터 3의 MAC 주소(18-31-BF-14-34-76)와 컴퓨터 1의 MAC 주소(18-31-BF-18-32-74)를 추가하여 데이터를 전송
데이터 링크 계층에서 데이터에 이더넷 헤더와 트레일러를 추가하여 프레임을 생성하고, 물리 계층에서 이 프레임 비트열을 전기 신호로 변환하여 네트워크를 통해 전송
IP가 있음서로 다른 시스템에 있는 개체 간에 성공적으로 데이터를 전송하는 통신 규약
시스템 간의 통신과 관련된 복잡한 상호 작용을 세분하여 계층화한 것이기 때문에 이해하기 쉽고, 각 계층 간 표준 인터페이스가 정의되어 있어 이 표준만 따르면 다른 업체의 시스템과도 호환이 가능
TCP/IP : 인터넷에서 컴퓨터 간의 통신이 가능하도록 표준화하여 채택한 통신 규약
전송 제어 프로토콜(Transmission Control Protocol, TCP)
인터넷 프로토콜 (Internet Protocol, IP)
IP는 패킷으로 변환된 데이터를 네트워크를 통해 멀리 떨어진 호스트에 보냄
👉 데이터 패킷을 전송
TCP는 전송 된 패킷에 오류가 발생하면 재전송을 요청하고 재전송된 패킷에 오류가 없으면 원래의 데이터로 재결합
👉 데이터의 흐름을 제어하거나 데이터가 정확한지 검사하는 것
👉 TCP/IP는 인터넷의 두 호스트 간 데이터 흐름의 정확성을 보장하는 프로토콜
네트워크 접속 계층, 네트워크 계층, 전송 계층, 응용 계층으로 구분

네트워크 접속 계층
TCP/IP의 경우 하위 계층인 물리 계층과 데이터 링크 계층을 특별히 정의하지 않았으며, 단지 모든 표준 및 임의 네트워크를 지원할 수 있도록 하고 있다
네트워크 접속 계층 : 운영체제의 네트워크 카드와 디바이스 드라이것을 지원하는 계층
데이터 링크 계층의 역할을 하는 TCP/IP 프로토콜
: 이더넷, 802.11x, MAC/LLC, SLIP, PPP 등
네트워크 접속 계층의 송신 측 컴퓨터에서는 상위 계층으로부터 전달받은 패킷에 물리 주소인 MAC 주소 정보가 있는 헤더를 추가해서 프레임을 만들어 하위 계층인 물리 계층에 전달
수신 측 컴퓨터는 데이터 링크 계층에서 추가한 헤더를 제거하고 상위 계층인 네트워크 계층에 전달 👉 이때 프레임의 크기는 네트워크 토폴로지가 결정
네트워크 계층
인터넷 계층이라고도 하며, 네트워크의 패킷 전송을 제어
네트워크 계층 프로토콜은 IP, ARP, ICMP, IGMP
역할은 데이터그램을 정확한 수신지로 전송
👉 데이터그램 : IP 프로토콜에서 다루는 패킷 데이터
👉 데이터그램에 있는 정보 : 송신지 주소와 수신지 주소, 보내는 데이터, 몇 가지 제어 필드 등
네트워크 계층의 송신 측 컴퓨터에서는 상위 계층으로부터 전달받은 패킷에 논리 주소인 IP 주소를 포함한 헤더를 추가하여 하위 계층인 네트워크 접속 계층에 전달
수신 측 컴퓨터에서는 하위 계층으로부터 전달받은 프레임의 헤더 정보를 확인한 후 송신 측 컴퓨터의 네트워크 계층에서 추가한 헤더를 제거하고 상위 계층인 전송 계층에 전달
전송 계층
상위 계층에서 볼 때 전송 계층은 호스트 간의 데이터 전송을 담당하는 계층
TCP와 UDP 프로토콜 사용
전송 계층의 역할
네트워크 양단의 송수신 호스트 간에 신뢰성 있는 전송 기능 제공
OSI 참조 모델의 세션 계층 일부와 전송 계층이 이에 해당
전송 계층의 송신 측 컴퓨터에서는 상위 계층으로부터 전달받은 데이터를 효율적으로 전송하기 위해 패킷 단위로 분할
수신 측 컴퓨터에서는 하위 계층으로부터 전달받은 패킷을 원래의 데이터로 재결합
송신 측 컴퓨터에서 패킷을 생성할 때 TCP를 이용하면 해당 패킷에 TCP 헤더 정보가 포함되고, UDP를 이용하면 해당 패킷에 UDP 헤더 정보가 포함
수신 측 컴퓨터는 전송받은 패킷의 헤더 정보를 통해 TCP를 이용하여 만든 패킷인지, 아니면 UDP를 이용하여 만든 패킷인지 알아내고, TCP 패킷이면 TCP 프로토콜을 사용하여 재결합하고, UDP 패킷이면 UDP 프로토콜을 사용하여 재결합
응용 계층
TCP/IP 프로토콜의 범위에는 응용 계층의 프로토콜까지 포함
이러한 프로토콜은 FTP(파일 전송), SMTP(이메일), SNMP(네트워크 관리) 등
TCP/IP 프로토콜을 이용한 응용 프로그램 중에서 우리가 직접 사용하는 인터넷 메일 프로그램(아웃룩 익스프레스)이나 웹 브라우저(인터넷 익스플로러) 등을 응용 계층으로 분류 가능
TCP/IP 프로토콜을 지원하려면 서버 컴퓨터에 프로토콜을 서버 형태로 서비스하는 데몬 Damon이라는 프로그램이 있어야 함
👉 클라이언트 : 서버 프로그램과 연동하여 작업을 수행하는 원격지의 프로그램
👉 클라이언트/서버 시스템 : 하나의 서비스를 제공할 경우 클라이언트의 요청을 처리하는 서버 프로그램, 즉 데몬이 필요한 관계
물리 주소(MAC 주소)
링크 주소 또는 통신망에서 정의된 노드의 주소, 이더넷 네트워크 인터페이스 카드(NIC) 6바이트(48비트) 주소 등
MAC 주소는 이더넷에서 각 호스트를 구별하기 위해 모든 이더넷 카드에 개별적으로 부여하는 고유한 식별 번호
회사에서 제품을 제작할 때 할당하므로 임의 지정 불가
윈도우 운영체제를 사용 하는 컴퓨터에서는 ipconfig/all 명령어로 MAC 주소 확인 가능
네트워크 접속 계층의 논리적 구성 단위인 프레임에서 사용됨
이더넷은 6바이트(48비트) 물리 주소를 사용하며, FDDI나 토큰링처럼 다른 주소 형태를 사용하는 것도 있다
인터넷 주소
인터넷에서는 물리 주소와는 별도로 (하나의 네트워크 안에서) 호스트를 식별할 수 있는 유일한 주소 지정 필요
현재 인터넷에 연결된 호스트를 유일하게 식별할 수 있는 32비트 주소 체계를 인터넷 주소로 사용하며, 주민등록번호나 학번처럼 IP 주소를 중복해서 사용 불가
포트 주소
인터넷 통신의 최종 목적은 한 프로세스가 다른 프로세스와 통신할 수 있게 하는 것
프로세스 식별 주소가 필요하므로 TCP/IP 구조에서는 포트 주소를 사용하여 이를 식별
TCP/IP 포트 주소의 길이는 16비트
★★★★

서로 다른 네트워크 간의 통신을 가능하게 하는 것이 네트워크 계층
네트워크 계층을 통해 다른 네트워크로 데이터를 전송하려면 라우터라는 네트워크 접속 장치 필요
LAN에서는 MAC 주소만으로도 통신이 가능하지만 다른 네트워크에는 데이터 전송 불가
∴ MAC 주소가 아닌, 네트워크를 식별할 수 있는 주소가 필요 👉 IP 주소
네트워크 계층은 데이터 전송과 경로 선택 기능을 제공하고, 라우팅 프로토콜을 사용하여 최적의 경로를 선택
데이터를 전송할 수신 측의 주소를 찾고 수신된 데이터의 주소를 확인하여 자신의 것이면 전송 계층으로 전송
논리 주소 지정
송신지와 수신지 주소를 헤더에 포함
라우팅
다양한 경로 중 패킷의 경로를 설정
주소 변환
대응하는 물리 주소를 찾기 위해 논리 주소를 해석
다중화
하나의 물리적 회선만 사용하여 많은 장치에 데이터를 동시에 전송
패킷 순서 제어
도착하는 패킷의 순서를 바로잡아 상위 계층의 메시지를 재구성하는 데 사용
👉 주로 TCP가 제어하지만 네트워크 계층 안에서도 받는 입장일 때 제어 가능

★ L3 스위치
IP 버전은 IPv4와 IPv6
현재 주로 사용하는 IP 주소 체계 : IPv4 Internet Protocol version 4
👉 32비트의 IP 주소로 232(약 43억)개의 컴퓨터에 할당 가능
공인 IP 주소와 사설 IP 주소
IP 주소는 공인 IP 주소와 사설 IP 주소로 구분
공인 IP 주소는 ISP가 제공
인터넷에 직접 연결되는 컴퓨터나 라우터에는 공인 IP 주소를 할당
집이나 회사의 LAN에 연결되는 컴퓨터에는 사설 IP 주소를 할당하는 정책을 시행
∵ IPv4는 주소가 고갈
IP 주소는 2진수 32비트를 구분하기 쉽게 10진수로 표시하여 사용
컴퓨터가 이해하려면 2진수가 필요하지만 사람이 읽기 쉽게 8비트 단위로 나누어 표시하며, 이것을 좀 더 읽기 쉽게 8비트를 10진수로 변환한 것이 IPv4
IP 주소는 10진수로 표시하지만 실제로 IP주소는 2진수로 되어 있다
네트워크 ID는 전체 네트워크가 좀 더 작은 네트워크로 분할된, 각 호스트가 속한 네트워크를 대표하며 네트워크 ID는 8비트, 16비트, 24비트 크기로 분류
호스트 ID : 네트워크 주소로 표현하는 네트워크 내부에서 각 호스트의 주소를 표현하는 역할 👉 전체 32비트에서 네트워크 주소를 제외한 나머지에 해당
네트워크 ID (어떤 네트워크인지) + 호스트 ID (해당 네트워크의 어느 컴퓨터)
= IP 주소
IP = NetworkID + HostID
192.168.0.(255) 👉 이 네트워크에 들어갈 수 있는 사람은 256명
0이라는 값은 네트워크의 기준이 됨 -> 호스트가 가져갈 수 있는 주소 X -> 255도 제외 (라우터에 할당)
∴ 실제 호스트가 사용할 수 있는 주소 개수는 254개
IP 주소는 비트로 구분
네트워크 ID를 크게 만들거나 호스트 ID를 작게 만들어서 네트워크의 크기를 조정 가능
네트워크의 크기는 클래스 개념으로 구분
IP 주소는 네트워크의 규모에 따라 A, B, C, D, E 클래스로 나뉨
A 클래스(대규모 네트워크 주소)
B 클래스(중형 네트워크 주소)
C 클래스(소규모 네트워크 주소)
D 클래스(IP 멀티 캐스팅용)
E 클래스(연구 및 특수 용도)
👉 IP 주소 맨 처음 바이트의 첫 1비트가 0이면 A 클래스
첫 2비트가 10이면 B 클래스
첫 3비트가 110이면 C 클래스
첫 4비트가 1110이면 D 클래스
첫 4비트가 1111이면 E 클래스

A 클래스는 처음 8비트가 네트워크 ID이고 다음 24비트가 호스트 ID
B 클래스는 처음 16비트가 네트워크 ID이고 다음 16비트가 호스트 ID
C 클래스는 처음 24비트가 네트워크 ID이고 다음 8비트가 호스트 ID
★ 어떤 것이 사설이고 어떤 것이 공인인가
컴퓨터나 라우터가 자신의 IP로 사용할 수 없는 주소
👉 모든 클라이언트에게 정보값 줄 수 있는 주소
집에서 많이 사용하는 C 클래스의 사설 IP 주소
네트워크 주소
호스트 ID가 2진수로 00000000이고 10진수로 0인 주소
전체 네트워크에서 작은 네트워크를 식별할 때 사용
전체 네트워크의 대표 주소
👉 전체 네트워크를 의미하므로 호스트가 가져갈 수 없음
브로드캐스트 주소
호스트 ID가 2진수로 11111111이고 10진수로 255인 주소
네트워크에 있는 모든 컴퓨터에 동시에 데이터를 전송할 때 사용되는 전용 IP 주소
IP 주소가 192.168.35.1~192.168.35.5인 컴퓨터는 192.168.35.0(네트워크 주소)의 네트워크에 있다
전체 네트워크에 데이터를 전송할 때는 호스트ID에 255를 설정
👉 브로드캐스트 주소 192.168.35.255로 데이터를 전송하면 네트워크에 있는 모든 컴퓨터가 데이터를 받는다. 네트워크 주소와 브로드캐스트 주소는 자신의 IP 주소로 설정할 수 없다.
서브넷팅 : 네트워크를 분할하는 것
서브넷 : ip 주소에서 네트워크 영역을 부분적으로 나눈 부분 네트워크
👉 더 많은 네트워크를 생성함으로써 IP 주소를 보다 효율적으로 활용 가능
서브넷 마스크
IP 주소를 서브넷팅하는 경우 어디까지 네트워크 ID이고 어디부터 호스트 ID인지 판단하기 어려울 때 사용
👉 네트워크 ID와 호스트 ID를 식별하기 위한 32비트의 값
A 클래스 : 255.0.0.0
B 클래스 : 255.255.0.0
C 클래스 : 255.255.255.0
211.100.10.0/24네트워크
1) 55개의 호스트 주소를 가지려 한다! 이때 적절한 서브넷 마스크는?
255.255.255.192
2) 서브넷 개수는?4개
3) 두번째 서브넷이 사용할 수 있는 호스트의 범위 :64 ~ 127
4) 네트워크 주소 :255.255.255.64
5) 브로드캐스트 주소 :255.255.255.127
현재 네트워크에서 다른 네트워크로 데이터를 전송 시
👉 라우팅의 경로 정보를 바탕으로 최적의 경로로 데이터 전송
👉 각 라우터의 라우팅 테이블에 경로 정보가 등록되어 있어 라우팅이 가능
라우팅 테이블 자동 등록
라우팅 테이블 수동 등록
라우팅 프로토콜
라우터 간에 정보를 교환하기 위한 프로토콜
라우팅 프로토콜을 설정하여 라우터 간에 경로 정보를 서로 교환하고 그것을 라우팅 테이블에 등록
대표적인 라우팅 프로토콜 : RIP OSPF 등
CIDR : 넷마스크 주소와 ip 주소
1) 패킷을 수신하면 라우터는 IP 헤더의 수신지 IP 주소로 네트워크 주소 확인
2) 수신지 네트워크 주소를 바탕으로 라우터의 라우팅 테이블 검색
3) 수신 경로를 확인한 후 데이터 링크 계층의 헤더 교체 후 데이터 전달
4) 이러한 처리를 반복하며 다음 네트워크로 계속 중계
ip 헤더 주소 확인 후 수신지 확인 > 라우터 통해 경로 설정해야하므로 라우팅 테이블 설정 > 데이터 링크 계층에서 헤더 교체하며 데이터 전달 > 계속해서 데이터가 중계됨
데이터가 잘 도착했는지 확인하는 명령어
1) ping을 실행할 때 패킷의 수명인 TTL 값을 변경하여 패킷의 수신지를 확인
처음에 TTL을 1로 하여 ping을 실행해보면 해당 중계 장치가 TTL 시간 초과 오류 메시지를 리턴 (TTL=1이면 192.168.35.1에서 오류 리턴)
2) TTL을 2로 하여 ping을 실행하면 최초 중계 장치에서는 TTL이 2-1=1 / 두 번째 중계 장치에서는 TTL이 1-1=0
👉 TTL 시간 초과 오류 메시지가 리턴 (TTL=2이면 192.168.55.1에서 오류 리턴)
3) TTL을 늘려가면서 수신지 서버로부터 응답 메시지가 돌아올 때까지 ping을 실행
👉 ping을 실행 시 TTL 값에 따라 서로 다른 IP 주소로부터 오류 메시지 리턴
👉 TTL 값을 이용하여 패킷이 중계되고 있다는 의미
ping 8.8.8.8
TTL (time to live): 데이터를 몇 단계 거쳐 갔는지의 단위 값
인터넷의 폭발적인 성장으로 32비트로 구성된 IPv4 주소 공간(약 40억 개)은 이미 고갈된 상태
IPv6는 128비트로 구성되며, 긴 주소를 쉽게 읽을 수 있도록 16비트씩 콜론(:)으로 나누어 각 필드를 16진수로 표현하는 방법을 사용
👉 주소 부족 현상 X
기존의 IPv4 주소도 하위 32비트는 IPv4 주소를 그대로 채우고 상위 비트는 모두 0으로 채워 IPv6 주소로 표현 가능
IPv6 주소의 길이는 128비트로, 이는 32비트인 IPv4 주소와 비교하면 주소 공간 길이가 4배 증가한 것
IPv6는 옵션을 기본 헤더에서 분리하여 필요할 때마다 기본 헤더와 상위 계층 데이터 간에 새로운 확장 헤더를 삽입해서 사용 가능
대부분의 옵션은 라우터로 검사할 필요가 없으므로 라우팅이 더 빠름
새로운 기술이나 응용 분야에서 요구되는 프로토콜의 확장을 허용하도록 설계
서비스 유형 필드를 삭제하고 플로우 레이블 flow label 항목을 추가하여 송신자가 패킷에 특별한 처리를 요청 가능
IPv4보다 향상된 보안 환경 제공 ex) 암호화와 인증 옵션 기능
확대된 주소 공간
: 주소의 길이가 128비트로 증가하여 2,128개의 주소를 생성 가능
단순해진 헤더 포맷
: IPv4 헤더의 불필요한 필드를 제거하여 보다 빠른 처리가 가능
간편해진 주소 설정 기능
: IPv6 프로토콜에 내장된 주소 자동 설정 기능을 이용하여 플러그 앤드 플레이 설치가 가능
강화된 보안 기능
: IPv6에서는 IPSec 기능을 기본 사항으로 제공
개선된 모바일 IP
: IPv6 헤더에서 이동성을 지원
논리 주소인 IP 주소를 물리 주소인 MAC 주소로 매핑하는 것
IP 프로세스는 물리 주소인 MAC 주소를 모름
👉 최종 수신지 호스트까지 신호를 전송하려면 기본 게이트웨이에서 수신지 IP 주소와 관련이 있는 네트워크 카드(LAN 카드)의 MAC 주소를 알아야 함
👉 이때 ARP 이용
IP 주소는 네트워크 카드를 교체해도 동일한 주소 사용 가능 / MAC 주소는 바뀜
ARP V 표준은 RFC 826을 따르며, ARP 명령어를 사용하면 네트워크에 등록된 하드웨어 주소를 확인 가능
MAC 주소로 데이터 전송
1) A 호스트 컴퓨터는 C 호스트 컴퓨터의 MAC 주소(00-23-71-00-F0-00)로 프레임을 만들어 하위 계층으로 전송하고, 하위 계층에서는 전기 신호로 만들어 전송
2) 모든 호스트 컴퓨터는 A 호스트 컴퓨터가 전송한 신호를 수신
3) C 호스트 컴퓨터는 자신의 MAC 주소와 일치하므로 신호를 수신하고, 나머지 호스트 컴퓨터는 신호를 폐기
ARP 요청을 보낸 컴퓨터와 ARP 응답을 보낸 컴퓨터 모두 일시적으로 ARP 캐시 테이블에 IP 주소와 MAC 주소의 조합 저장
👉 통신할 때마다 ARP 신호를 주고 받지 않아도 되기 때문에 효율적
보통 ARP 캐시 테이블에는 수명을 설정하여 그 시간이 경과하면 ARP 캐시 값을 제거 👉 윈도우의 ARP 캐시 수명은 120초
ARP 요청 👉 LAN에서 브로드캐스트로 전송
ARP 응답 👉 LAN에서 유니캐스트로 전송
이러한 ARP 송수신은 동일한 LAN의 컴퓨터끼리, 즉 데이터 링크 계층으로 한정
동일한 LAN의 IP 주소라면 직접 ARP 처리를 실행함으로써 주소 변환 가능
역주소 변환 프로토콜 RARP은 호스트 컴퓨터의 물리 주소를 알고 있을 때 IP 주소를 알아내는데 사용
컴퓨터를 네트워크에 처음 연결할 때나 디스크가 없는 컴퓨터를 부팅할 때 사용하는 프로토콜
이더넷, 토큰링, FDDI 등 근거리 통신망에서 사용 가능
예상치 못한 상황이나 오류가 발생할 수도 있는데, 인터넷 제어 메시지 프로토콜 ICMP은 라우터에서 발생한 오류를 송신 측으로 전송하는 데 사용하는 프로토콜이다Time-to-live Exceeded in Transit
IP 데이터그램을 최종 수신지에 전송하기도 전에 데이터그램의 활성화 시간
값이 0에 도달했을 때 이 오류 메시지를 사용
라이프 타임 필드는 데이터그램이 거칠 수 있는 최대 단계의 수를 나타내므로 라우터는 활성화 시간 값이 0인 데이터그램 전송 불가
이때는 데이터그램을 소멸시켜야 하며, 송신자에게 삭제했음을 알림
👉 네트워크 계층에서 쓰임
인터넷에 연결한 컴퓨터가 멀티캐스트 그룹을 주위의 라우터에 알릴 수 있는 수단을 제공하는 프로토콜
출발지에서 목적지 컴퓨터끼리 데이터를 주고받을 때 오류를 점검하고
보정하여 오류가 있으면 재전송 요청을 함
전송 계층의 대표적인 프로토콜로 인터넷에서 사용하는 TCP가 있음
IP만 사용하면 오류가 발생할 수 있으므로 항상 TCP를 같이 사용
프로토콜(TCP, UDP)과 관련된 계층으로 오류 복구와 흐름 제어 등을 담당하며, 두 시스템 간에 신뢰성 있는 데이터를 전송
전송 계층의 데이터 단위 : 세그먼트
연결 제어
패킷을 하나의 경로로 보낼 것인지 결정
수신지로 데이터 전송
수신지에서 데이터의 모든 패킷 전송과 도착을 검사
단편화
데이터를 전송 가능한 단편(세그먼트)으로 나누고 순서 번호를 기록
재조립
수신지의 전송 계층에서 순서 번호에 따라 데이터를 올바르게 재조립
연결형 통신 : 신뢰할 수 있고 데이터를 정확하게 전송하는 통신
비연결형 통신 : 효율적으로 데이터를 전송하는 통신
연결형(TCP) 통신 👉 신뢰성이 우선이므로 데이터를 전송할 때 여러 번 확인하고 전송
비연결형(UDP) 통신 👉 효율성이 우선이므로 확인 절차 없이 일방적으로 데이터를 전송

TCP는 대표적인 연결 지향형 프로토콜
포트는 TCP가 상위 계층으로 데이터를 전송하거나 상위 계층에서 TCP로 데이터를 전송할 때 상호 간에 사용하는 데이터의 이동 통로
포트 번호는 0~65535번을 사용 가능
주요 인터넷 서비스에 정해놓은 포트 번호를 ‘잘 알려진 포트 번호’라고 하며 0~1023번이 할당되어 있음

★★★★
TCP 세그먼트를 IP 데이터그램으로 캡슐화 시
👉 ip 에서 있는 헤더는 제외
포트 번호만 사용하여 응용 프로그램을 식별하는 UDP와 달리 TCP는 연결을 사용하여 응용 프로그램을 식별

데이터를 전송할 때 한 번에 전송할 수 있는 전체 패킷의 크기를 ‘ TCP 윈도우 크기’라고 하는데, 윈도우 크기가 크면 한 번에 여러 패킷 전송 가능
(1) 연결 확립을 요청하면 수신 측 컴퓨터는 송신 측 컴퓨터의 윈도우 크기를 확인 (SYN).
(2) 연결 확립 응답과 연결 확립 요청을 통해 송신 측 컴퓨터는 수신 측 컴퓨터의 윈도우 크기 확인 (ACK+SYN)
(3) 연결 확립 응답으로 윈도우 크기 확인 과정이 마무리 (ACK, 3-way 핸드셰이킹)
👉 데이터 보내고 확인
TCP(Transmission Control Protocol : 전송 제어 프로토콜)
송신지에서 수신지까지문자 스트림을 전송하는데, 두 응용 계층이 서로 대화하는 것을 허용하는 신뢰성 있는 프로토콜
UDP(User Datagram Protocol : 사용자 데이터그램 프로토콜)
OSI 참조 모델에서 정의하는 전송 계층의 일부 역할을 무시하는 단순한 전송 프로토콜
▪ 데이터 전송 시 세션을 관리하는 계층
▪ 세션은 작업의 큰 단위를 가리킴
▪ 데이터를 암호화하는 계층
▪ 웹에서 흐르는 데이터를 암호화하려면 반드시 표현 계층을 거쳐야 함
** HTTP의 암호화된 웹 프로토콜은 HTTPS로 표현 계층에 위치함
▪ 네트워크를 사용하는 대부분의 응용 프로그램이 위치함
▪ HTTP나 FTP가 이 계층에 위치

프로토콜과 프로그램은 원격으로 컴퓨터 자원에 접속하는 데 사용된다. 응용 프로그램을 통해 제공되는 서비스 는 표현 계층과 세션 계층에 정의되어 있다.세션 계층은 응용 프로그램 계층 간의 통신을 제어하는 구조를 제공하기 위해 응용 프로그램 계층 사이의 접속을 설정·유지·종료하는 역할
사용자와 전송 계층 간의 인터페이스 역할
LAN 사용자가 서버에 접속할 때 이를 관리하는 기능 수행
데이터의 단위(메시지)를 전송 계층으로 전송할 순서를 결정하고, 데이터를 점검 및 복구하는 동기 위치 제공
세션을 종료할 필요가 있으면 종료할 적절한 시간을 수신자에게 알려줌
세션 계층 기능 ★★★★
동기화
전송 계층으로 전송할 순서와 전송할 때 수신자 확인이 필요한 곳을 결정
세션 연결의 설정과 종료
세션 연결의 설정과 종료 및 관리 절차를 정의
대화 제어
누가 언제 보내는지 결정
표현 계층은 데이터 표현의 차이를 해결하기 위해 서로 다른 형식으로 변환하거나 공통 형식을 제공 -> MIME 표현
OSI 참조 모델의 여섯 번째 계층인 표현 계층은 송신 측과 수신 측 사이에서 표준화된 데이터형식을 규정
👉 전송하려는 이미지가 png인지, jpg인지, 압축되었는지 등 표현과 관련된 구분을 함
표현 계층의 기능 ★★★★
암호화
데이터의 보안을 위해 암호화와 복호화를 수행
압축
데이터의 효율적인 전송을 위해 데이터 압축 및 압축 해제를 수행
코드 변환
전송에 사용할 수 있도록 메시지(데이터)를 상호 간에 수용할 수 있는 형식으로 변환한 후 수신지에서 수신자가 이해할 수 있는 형식으로 변환
파일 전송, 데이터베이스, 원격 접속, 메일 전송 등의 응용 서비스를 네트워크에 접속
여러 가지 서비스를 제공
사용자가 정보를 입력하면 하위 계층으로 전달하고, 하위 계층에서 전송한 데이터를 사용자에게 전달
응용 계층의 기능 ★★★★
파일 접근 및 전송
원격으로 다른 호스트 파일에 접근할 수 있게 하고, 원격 컴퓨터에서 파일을 가져오며, 원격 컴퓨터의 파일을 관리하거나 제어
메일 서비스
메일을 발송하고 저장할 수 있는 토대를 제공
응용 계층에서 제공하는 프로토콜
TCP 응용 계층 프로토콜
FTP, HTTP, TELNET, SMTP, POP3, IMAP, UDP
응용 계층 프로토콜
DHCP, SNMP프로토콜
SMTP(TCP 포트: 25), POP3(TCP 포트: 110), IMAP(TCP 포트: 143) 👉 메일 서비스 관련
SMTP : 네트워크의 두 메일 서버 간에 이메일을 송수신하는 데 사용하는 TCP/IP 프로토콜POP3 : 이메일을 수신하는 표준 프로토콜. POP의 최신 버전IMAP : 이메일을 저장·복사하는 프로토콜DHCP(UDP 포트: 67, 68) ★★★★★
네트워크의 각 노드에 유일한 IP 주소를 자동으로 할당하고 관리하는 서비스
네트워크의 효율이 높음
관리자는 DHCP로 IP 주소를 관리하는 시간과 노력 감소 가능
IP 주소 할당 과정에서 발생하는 잠재적인 오류 감소 가능
네트워크에서 컴퓨터나 프린터 등의 위치를 변경해도 TCP/IP를 새롭게 조정할 필요 X
노트북 등의 이동용 노드 사용자를 위해 IP 주소 부여 가능
UDP에서 활용
★★★★

포트번호
22 : SSH ★ 절대 불변
5000 : Flask -> 바꿀 수 있음
80 : web (http) / 443 : https -> 고정
3306 : MySql -> 바꿀 수 있음
8080 : Oracle DB
6바이트 -> 더 큰 정보 담을 수 있음 (DB가 더 많음)
ip -> 동적 / 맥주소 -> 유동적
nslookup naver.com -> naver 도메인 정보 알려줌
192.168.0.20/24 -> 슬래시 뒤에 있는 숫자 (net mask)
존재하는 도메인을 가지고 ip 주소를 찾아가는 것
1Gbps는 몇 mb?
세대별 무선통신 특징
CDMA 방식 특징 -> 원리? 실제 어디에 적용?