2023. 7. 20. 00:54ㆍnormaltic 비기너 클래스 1기/내용 정리
TCP/IP 5 Layer
프로토콜(Protocol)
프로토콜은 원래 외교상의 언어로서 국가와 국가 간의 교류를 원활하게 하기 위한 외교에 관한 의례나 국가 간에 약속을 정한 의정서이다. 이것을 통신에 적용한 것이 통신 프로토콜 (communication protocol )이다. 프로토콜을 편지 보내는 과정으로 설명할 수 있다.
- 편지를 쓴다
- 편지 봉투에 넣고 우표를 붙인다.
- 보내는 주소와 받는 주소를 적는다.
- 우체국에 전달한다
- 우체국에서 받는 주소로 편지를 전달한다.
- 전달받은 편지의 봉투에서 편지를 꺼낸다.
- 편지를 읽는다.
이렇게 편지를 보내기 위해서는 일련의 절차를 진행해야하며 하나의 작업이라도 문제가 생기면 편지 전달에 실패하게 된다. 이렇듯 편지 보내는 과정과 같이 네트워크 상 컴퓨터 간의 데이터를 주고받기 위한 약속 혹은 계층화시킨 것이 존재하며 여기에는 OSI 7 Layer, TCP/IP 5 Layer이 있다.
TCP/IP 5 Layer
TCP/IP 5 계층은 네트워크의 기본 구조를 5개의 계층으로 나눠서 표준화한 것이다. 네트워크를 이용한 통신은 서로 다른 역할을 갖고 있는 5개의 계층을 통해 일어난다.
그림과 같이 TCP/IP 5 Layer는 응용, 전송, 네트워크, 데이터링크, 물리 계층으로 구성 되어 있으며 각각의 계층은 독립적이라 데이터가 전달되는 동안에는 다른 계층의 영향을 받지 않는다. 각 계층에서 얻을 수 있는 정보는 다음과 같다.
- 응용 계층 : 데이터 생성
- 전송 계층 : Port 번호 정보 획득
- 네트워크 계층 : IP 주소 정보 획득
- 데이터링크 계층 : MAC 정보 획득
- 응용 계층에서 송신할 데이터를 생성한다. 이 때 단위는 data/message 다.
- 전송 계층에서 획득한 정보를 data에 합친다. 이 때 단위는 segment 다.
- 네트워크 계층에서 획득한 정보를 segment에 합친다. 이 때 단위는 packet/datagram이다.
- 데이터 링크 계층에서 획득한 정보를 packet/datagram에 합친다. trailer는 끝 부분에 붙이며 주로 에러 검출에 사용된다. 이때 단위는 frame이다.
- 이렇게 만들어진 frame을 비트의 형태로 수신하는 컴퓨터에 전달한다.
- 데이터 수신 과정은 데이터 송신 과정의 역과 같다.
전송 계층 (Transport)
TCP (Transmission Control Protocol)
TCP(Transmission Control Protocol)는 연결 지향적인 성향을 띠며 3-way-handshake 작업을 통해 데이터를 안전하고 믿음직하게 수신 측에 전송을 보장하는 프로토콜이다.
3-way-handshake 작업
A와 B가 데이터를 교환 하기 전 수행하는 일련의 작업이다.
송신 측을 A, 수신 측을 B라고 해보자.
1. A가 B에게 SYN 패킷을 보낸다.
2. B가 A에서 보낸 SYN 패킷을 성공적으로 받으면 A에게 ACK/SYN 패킷을 보낸다.
3. A가 B에서 보낸 ACK/SYN 패킷을 성공적으로 받으면 B에게 ACK 패킷을 보낸다.
4. B가 A에서 보낸 ACK 패킷을 성공적으로 받으면 그때부터 A와 B사이에서 데이터 교환이 이루어진다.
UDP (User Datagram Protocol)
UDP(User Datagram Protocol)는 TCP와 달리 비연결적인 성향을 띠며 신뢰적이지 않는 전송 프로토콜이다. 그러나 UDP는 TCP와 다르게 흐름제어나 오류제어 등이 없기 때문에 전송 속도를 최대한 빠르게 할 수 있다. 그래서 신뢰성보다 속도가 중요한 부문에서 UDP를 사용하게 된다. 예를 들어 유튜브 동영상 같은 스트리밍은 신뢰성보다 속도가 중요하므로 UDP를 사용한다.
네트워크 계층 (Network)
IP (Internet Protocol)
목적지를 식별하기 위해 사용하는 주소로, 어떤 네트워크의 어떤 컴퓨터인지를 구별할 수 있게 해 준다. IP 주소는 인터넷 서비스 제공자인 ISP(Internet Service Provider)에게 받을 수 있다. 국내에선 대표적으로 KT, SKT, LG유플러스 등이 있다.
IP 주소의 형식에는 8비트씩 4부분으로 총 32비트로 구성되어 있는 IPv4와 16비트씩 8 부분으로 총 128비트로 구성되어 있는 IPv6으로 총 2가지 형식이 존재한다. 처음에는 IPv4 형식으로 IP주소를 할당하였다. 그러나 IPv4 형식으로는 할당할 수 있는 주소의 수가 약 43억 개로 전 세계에 할당하기에는 그 수가 상당히 부족하다. 이를 해결하기 위한 방법으로 2 가지가 제시되었다.
1. IPv6 형식 사용
IPv6 형식의 사용은 할당 가능한 주소의 수를 늘리는 방법으로 사용되었다. 그러나 아직까지도 IPv4 형식을 사용하는것으로 보아 IPv6 형식으로 전부 바꾸기에는 시간이 오래 걸릴 것으로 예상된다.
2. NAT (Network Address Translation) 사용
NAT 개념은 ISP에서 할당받은 외부 IP를 공유기에 연결된 다른 전자기기에 변환된 내부 IP를 할당하는 개념으로 하나의 외부 IP를 통해서 여러개의 내부 IP를 할당하여 효율적인 사용을 할 수 있도록 해준다.
서브넷 (Subnet)
서브넷이란 ISP에서 할당받은 외부 IP를 공유기를 통해 변환된 내부 IP의 네트워크로 네트워크 속 네트워크를 말한다. Subnetmask가 255.255.255.0일 때 IP 주소가 58.142.184.127 라면 AND 연산을 통해서 가능한 경우의 수를 구한다.
ex. 255.255.255.0 = 11111111.11111111.11111111.00000000
58.142.184.127 = 00111010.10001110.10111000.01111111
=> AND 연산 => 58.142.184.0
58.142.184.0~255 개 까지 생성이 가능하나 0번 (네트워크 주소), 1번 (게이트웨이 주소, 공유기 주소), 255번 (브로드캐스트 주소, 내부 ip 주소 모두에게 데이터 전달 할 때 사용)은 사용이 불가능하다.
데이터 링크 계층
ARP (Address Resolution Protocol)
해당 IP를 그 IP주소에 맞는 물리적인 주소 즉, MAC주소를 가지고 오는 프로토콜이다. 송신 측은 데이터를 전송하기 위해목적지의 MAC주소가 필요하므로, MAC주소 요청을 위한 ARP요청 패킷을 브로드캐스트로 전송한다. 모든 호스트와 라우터는 송신 측이 보낸 ARP 요청 패킷을 수신한다. 이때 해당되는 수신측만 자신의 IP주소와 MAC주소의 정보가 담긴 패킷을 송신 측에 전달한다.
ARP Spoofing 공격
ARP Spoofing 공격은 로컬 네트워크(LAN)에서 사용하는 ARP 프로토콜의 허점을 이용하여 자신의 MAC(Media Access Control) 주소를 다른 컴퓨터의 MAC주소인것처럼 속이는 공격이다. 이때 피해 측과 게이트웨이 측을 동시에 속이며 피해 측에서 보내는 데이터와 게이트웨이 측에서 보내는 데이터를 중간에서 처리하는 중간다리 역할을 함으로써 데이터를 중간에 가로챌 수 있다.
HTTP (Hypertext Transfer Protocol), HTTPS(Hypertext Transfer Protocol Secure)
HTTP(Hypertext Transfer Protocol)
HTTP는 인터넷상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜이다. 클라이언트에서 요청을 보내면 서버는 요청을 처리해서 응답한다. HTTP는 Connectionless 방식으로 작동한다. 서버에 연결하고, 요청해서 응답을 받으면 연결을 끊어버린다. 이런 작동방식은 장단점을 가진다.
장점
- 불특정 다수를 대상으로 하는 서비스에 적합하다.
- 수십만 명이 웹 서비스를 사용하더라도 접속유지는 최소한으로 할 수 있기 때문에, 더 많은 유저의 요청을 처리할 수 있다.
단점
- 연결을 끊어버리기 때문에, 클라이언트의 이전 상태를 알 수가 없다.
- 이러한 HTTP의 특징을 stateless라고 하는데, Connectionless로부터 파생되는 특징이라고 할 수 있다.
- 클라이언트의 이전 상태 정보를 알 수 없게 되면, 웹 서비스를 하는데 당장에 문제가 생긴다.
- 클라이언트가 과거에 로그인을 성공하더라도 로그 정보를 유지할 수가 없다. HTTP는 cookie를 이용해서 이 문제를 해결하고 있다.
Cookie는 클라이언트와 서버의 상태 정보를 담고 있는 정보조각이다. 로그인을 예로 들자면, 클라이언트가 로그인에 성공하면, 서버는 로그인 정보를 자신의 데이터베이스에 저장하고 동일한 값을 cookie형태로 클라이언트에 보낸다.
HTTPS(Hypertext Transfer Protocol Secure)
HTTPS는 HTTP의 확장 버전 또는 더 안전한 버전이다. HTTPS에서는 브라우저와 서버가 데이터를 전송하기 전에 안전하고 암호화된 연결을 시도한다. HTTP 메시지는 일반 텍스트이므로, 권한이 없는 당사자가 인터넷을 통해 쉽게 액세스하고 읽을 수 있는 반면에 HTTPS는 모든 데이터를 암호화된 형태로 전송하기 때문에 데이터의 보호를 위해서는 HTTPS를 사용하는 것이 좋다.
DNS (Domain Name System)
도메인 네임은 숫자로 된 IP 주소를 사용자가 이해하기 쉬운 문자 형태로 표현한 것이다. 도메인 네임을 IP 주소 대신 웹사이트에 접속 가능하게 해준다. 이때 도메인 네임을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 역할을 하는 시스템을 DNS (Domain Name System)이라고 하며 이러한 역할을 하는 서버를 DNS 서버라 한다.
도메인 네임은 호스트 컴퓨터 이름, 소속 기관 이름, 소속 기관의 종류, 소속 국가명 순으로 구성되며 왼쪽에서 오른쪽으로 갈수록 상위 도메인을 의미한다.
EX) www(호스트 컴퓨터 이름).ibk(소속 기관 이름).co(소속 기관 종류).kr(소속 국가)
'normaltic 비기너 클래스 1기 > 내용 정리' 카테고리의 다른 글
[normaltic 비기너 클래스 1기] 2023-08-16 Skill Course 2주차 내용 정리 (0) | 2023.08.23 |
---|---|
[normaltic 비기너 클래스 1기] 2023-08-09 Skill Course 1주차 내용 정리 (0) | 2023.08.22 |
[normaltic 비기너 클래스 1기] 2023-08-02 4주차 내용 정리 (0) | 2023.08.09 |
[normaltic 비기너 클래스 1기] 2023-07-26 3주차 내용 정리 (0) | 2023.07.28 |
[normaltic 비기너 클래스 1기] 2023-07-12 1주차 내용 정리 (0) | 2023.07.13 |