티스토리 뷰
I. TCP/IP의 개념(Transmission Control Protocol / Internet Protocol)의 개요
가. TCP/IP 정의
- TCP/IP는 네트워크를 상호 연결시켜 정보를 전송할 수 있도록 하는 기능을 가진 다수의 프로토콜이 모여 있는 프로토콜의 집합
- TC/IP의 가장 대표적인 프로토콜은 3계층의 IP와 4계층의 TC로 대부분의 응용서비스가 TCP상에서 이루어지나, 최근 인터넷의 단점을 보완하기 위해 UDP를 적극적으로 이용하는 추세임
나. TCP/IP 특징
- 독립적: Hardware, Operaing System, 물리적 Network에 무관한 전송규약
- 전세계의 유일한 주소체계 확립
다. TCP/IP의 표준화 이점
- 네트워크의 변화와 서비스유형에 따라 다양한 프로토콜을 동시에 허용
- 표준규격이 실증에 기초하고 있음
- 표준규격과 표준화의 과정이 RFC(Request for Comments;인터넷 표준화기구[IETF]에서 전세계적으로 인터넷의 표준으로 정의된 문서)형태로 개방되어 있음
II. TCP/IP 개념 모델 및 OSI 모델과의 비교
가. TCP/IP 모델
- OSI 모델과 달리 4개의 Layer들로 구성되어 있으며, 실제로 많이 사용되고 있는 기술을 바탕으로 OSI 7계층의 복잡성을 4계층으로 단순화 시킨 모델
- TCP/IP는 3,4계층을 중심으로 한 통신프로토콜의 계층 집합
- ARP(Address Resolution Protocol): IP주소를 물리적 하드웨어 주소로 자동적으로 변환하는 프로토콜
- ICMP(Internet Control Management Protocol) : IP계층을 이용해서 에러메시지 교환이나 다른 중요한 정보를 다른 호스트나 라우 터의 IP층과 교환(예, PING)
- IGMP(Internet Group Management Protocol) : 복수의 호스트에 UDP 데이터그램을 송신하는 멀티캐스팅에 이용되는 프로토콜
나. TCP/IP 모델과 OSI 모델의 비교
항목 | OSI 모델 | TCP/IP 모델 |
계층 | - 7계층 구조 | - 4계층 구조 |
구현 | - 모델을 만들고 실제 구현을 진행함 | - 이미 실제로 구현된 기술을 바탕으로 만듦 |
문제점 | - 너무 복잡하여 여러 계층에 중복된 기능이 존재함 | - 프로토콜간의 경계나 기능들이 확실히 구분되어 있지 않음 |
공통점 | - 두 모델 모두 계층적 구조를 가짐 - 다양한 서비스를 가진 응용프로그램 계층이 존재함 - 트랜스포트 계층/네트워크 계층과 호환되는 계층이 존재함 - 패킷 스위칭 기술을 기반으로 함 | |
차이점 | - TCP/IP 프로토콜은 인터넷 표준이며 높은 신뢰성 보장 - 현실 네트워크는 구체적인 OSI 프로토콜로 만들어지지 않음 |
III. TCP(Transport Layer Protocol) & UDP(User Datagram Protocol) 비교
구분 | TCP | UDP |
정의 | 3, 4 계층의 통신 프로토콜 집합으로 연결지향적 (Connection Oriented) 설정을 제공하는 프로토콜 | 제어용 메시지 처리나 빠른 응답을 요구하는 응용서비스를 위하여 비연결형(Connectless) 설정을 제공하는 프로토콜 |
데이터순서 | 보내는 순서를 유지함 | 순서를 유지하지 않음 |
데이터중복 | 데이터 중복, 손실 없음 | 데이터 중복, 손실 가능 |
에러제어 | 헤더 및 데이터에 대한 에러 검사 후 에러시 재전송 | 헤더 및 데이터에 대한 에러 검사 후 에러시 재전송 하지 않음 |
흐름제어 | 슬라이딩 윈도우 사용 | 흐름제어 없음 |
개념도 |
|
|
종류 | Telnet, FTP, SMTP | SNMP, TFTP |
장점 | 신뢰성 있는 경로 확립 메시지전송 감독 메시지를 세그먼트로 분할 전송 | 단순한 헤더 방송용 동영상 정보전송 멀티캐스트용 MBone 메시지 블록단위 전송 |
단점 | 전송에러 계속 감시 손실시 재전송 | 간단한 에러검사 기능 안전전송 여부확인 못함 |
IV. TC Three-Way Handshake[TCP 연결 구조]
가. TCP/IP 연결시 3-way Handshake
- Client는 접속하고자 하는 서버의 포트번호와 클라이언트의 초기순서번호(Init Sequence Number)를 지정한 SYN 세그먼트를 전송
- 서버는 서버의 초기순서번호(ISN)를 포함한 자신의 SYN세그먼트로 응답, 또 서버는 클라이언트의 ISN + 1 ACK를 보냄으로써 클라이언트의 SYN에 확인 응답
- 클라이언트는 서버로부터 보내온 SYN에 대하여 서버의 ISN + 1 ACK로 확인응답을 전송
- 위 3개의 세그먼트에 의해 연결이 설정되며 이것을 Three-way Handshake라 부름
나. TCP/IP 연결해지시 4-way Handshake
V. IP의 개요 및 구조와 주요기능
가. IP(Internet Protocol)의 정의
- Subnet과 무관하게 데이터 패킷을 임의의 host 사이에서 주고 받기 위한 프로토콜로 패킷 별 경로 선택
나. IP의 특징
- 가상회선서비스 제공이 안되기 때문에 항상 32bit IP address를 포함
- OSI 네트워크 계층에서의 흐름제어, 오류제어 같은 기능 없음
다. IP Header 의 주요 구조
IPv4 | |
IPv6 |
라. IPv4 Header의 주요 기능
종류 | 내용 |
1.version(4) | IP header의 형식을 나타냄: IPv4, IPv6 |
2.Header length(4) | 32bit로 헤더의 길이를 표시 |
3.Type of Service(8) | 우선권, 지연시간, 처리능력, 신뢰성등 바람직한 QoS를 네트워크에 알려줌 |
4.Total length(16) | byte단위의 IP헤더와 데이터 길이를 표현 |
5.Ideltification(16) | 각 datagram마다 고유하게 설정되는 datagram번호 |
6.Flag(3) | IP datagram의 단편화 유무 |
7.Fragment offset(13) | 단편화 되기 전 datagram,처음에서부터의 상대적인 위치 기록 |
8.Time to Live(TTL)(8) | 네트워크에서 IP datagram이 활동할 수 있는 최대 시간 |
9.Protocol(8) | IP데이터를 수신할 상위 계층 프로토콜, ICMP, IGMP, TCP, UDP |
10.Header Checksum | 오류탐지 bit |
VI. TCP/IP 통신 기능
가. Listen()
- 클라이언트 요청이 올 때까지 대기하는 Passive Socket
나. Accept()
- 클라이언트의 요청을 수락하여 Active Socket mapping
다. Connect()
- 클라이언트에서 생성된 Active Socket과 서버측의 Passive Socket을 서로 연결
라. Slow-Start단계(완만한 출발)
- 망 내에 존재하는 패킷의 수가 과도하게 증가되는 현상을 혼잡(congestion)이라고 정의하며 혼잡현상을 방지하거나 제거하는 기능 을 혼잡제어(congestion control)라고 한다. Slow-Start는 패킷을 저장하는 중간 라우터의 저장할 버퍼 공간의 부족으로 데이터 전송 의 문제가 생기는 것.
VII. IP Address Schema
가. IP 주소의 정의
- 인터넷의 수 많은 호스트들을 각각 구분할 수 있도록 각 호스트마다 유일한 4바이트의 정수 값을 할당 하는데, 이것을 인터넷주소 또는 IP주소라고 부름
나. I P 주소의 특징
- 32bit 이진수를 각각 8bit씩 4부분으로 나누고 각 부분을 점(.)으로 구분하여 10진수로 표시
- NIC(Network Information Center)에서 할당 관리함.
- 실제 사용시에는 문자주소(Domain Name)을 사용하고 DNS를 통하여 IP주소로 변환됨
다. IPv4의 주소 클래스 주소
- Network-ID 는 네트워크 그룹이 달라서, 라우팅을 해야하며 Net-ID가 같은 경우에는 라우팅 기능 필요 없음
- 클래스 A는 7비트의 net-id와 24비트(256.256.256)개의 host-id로 나누어져 있음
- 클래스 B는 중간크기의 네트워크에서 사용
- 클래스 C는 대부분의 기업에서 사용(xxx.xxx.xxx.23)
- 클래스 D는 224.x.x.x 로 시작하는 IP주소를 클래스 D주소라고 부름, 멀티캐스트 전송용으로 사용
'Computer Science' 카테고리의 다른 글
[백준] 오르막수 11057번 (0) | 2018.09.16 |
---|---|
[백준] 쉬운 계단 수 10844번 (0) | 2018.09.16 |
[네트워크] OSI 7 레이어는 무엇인가? (0) | 2018.09.16 |
[카카오 코딩테스트]OpenChatting (0) | 2018.09.15 |
[네트워크] 프로토콜이란 무엇인가? (0) | 2018.09.14 |
- Total
- Today
- Yesterday
- Use case
- GIT
- 항해솔직후기
- github
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- pop_back
- 월급쟁이부자들
- 월부닷컴
- 폭포수
- docker
- front
- 재테크공부
- 내년은 빡세게!!
- 열반스쿨기초반
- 관계대수
- 유즈케이스
- 인셉션
- Inception
- push_back
- 2023년
- 개발자 회고
- resize
- 항해플러스백엔드
- 부동산공부
- Spring boot
- 깃
- 파라메터
- 항해플러스후기
- 도커
- 깃허브
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |