본문 바로가기

이론/네트워크

전송 응용계층, 계층 패킷 분석

반응형

1계층   => 실제 네트워크를 연결하기위한 물리적 세부사항(허브)

2계층  =>  점과 점사이 안전한 연결을 위함 crc , 이더넷 , 물리적인 네트워크가 있는경우에만 사용

3계층  => 다양한 길이의 네트워크를 사용, 서비스의 질을 위한 기능적 절차적  라우터 , 스위치

4계층 => 전송계층

 

대표 프로토콜은 tcp(tranmission control protocol)

tcp가 가진 주소를 포트(항구)라 하며 0~65535(2의16승 -1)존재

(웹이라는 항구에 배칭이된다)

0~1023(1024)을 잘 알려진 포트라고 부른다(보통 0번 포트는 사용하지 않는다)  => 잘 쓰여지는 특정 number가 존재 한다.

 

패킷 구조와 예

 

출발지 포트는 보통 1024부터 65535번 사이에서 사용하지 않는 임의의 포트를 응용 프로그램별로 할당하여 사용

 

클라이언트가 웹 서버에 접속할 때 패킷 구조(서비스 포트는 보통 80번)

 

4계층 (전송 계층)  =>  출발지 포트(source Port) | 80(Destination Port)

3계층 (헤더)        => 출발지 IP 도착지 IP

 

80 => http

53 => DNS

21 => FTP

23 => Telnet

 

[방화벽의 동작원리 구글링]

=> black white 개념 => 식별되지 않으면 그냥 차단...

 

"인터넷(외부 네트워크)으로부터 방화벽으로 들어오는 모든 접근 시도는 방화벽 내부에 사전 설정된 보안 규칙인 접근 제어 목록에 따라 내부 통과 여부가 결정된다. 기본적으로 방화벽은 모든 접근을 거부(deny)한 후 허용할 접근만 단계적으로 허용(allow/permit)하는 방식을 따른다. 예를 들어, 네트워크를 통해 데이터가 이동하는 통로를 ‘포트(port)’라 하는데, 방화벽은 기본적으로 약 65,000여 개의 통신 포트 모두를 차단한 후 접근을 허용하는 특정 포트만을 열어 두게 된다. 즉 홈페이지 운영을 위한 웹 서비스(http)를 제공한다면 80 포트를, FTP 서비스(ftp)를 제공한다면 20/21 포트 등을 접근 허용해야 한다. 통신 포트뿐 아니라 외부로부터 접근하는 IP 주소나 특정 프로그램에 따라 접근/거부 여부를 결정할 수 있다. 이러한 보안 규칙 설정이 모두 접근 제어 목록에 포함되어 일괄 적용된다."

 

TCP

 

연결 지향형 프로토콜

IP와 함께 통신을 하는데 반드시 필요한 가장 기본적인 프로토콜(TCP|IP)

 

TCP의 특징

 

높은 신뢰성

가상 회선 연결 방식

연결의 설정과 해제 (한번 연결되면 끝날때까지 연결되어있는 상태  => 대화가 있는 상태(받았으면 받았다는 연락이 온다.))

데이터 체크섬

시간 초과와 재전송

데이터 흐름제어

 

=> 특정시간 대기후 응답이 없으면 재전송한다.  이러한 전송이 신뢰성을 높혀준다.

 

 

TCP 패킷의 구조

 

S.port  : Source Port 패킷의 출발지 포트 번호를 가리키며 0~65535의 값중 하나이다.

D.port : Destination Port 패킷의 목적지 포트 번호

Data Offset : TCP패킷 헤더의 길이를 나타내는데 32비트가 몇 행인지를 가리킨다.

control Bit ...추후..

checksum 데이터 오류검출 을 위한 값(2byte)

가변사이즈 (Option(옵션의 종류와 길이), Padding, Data(전송 하고자 하는 데이터를 저장))

 

연결 설정 과정

(Three way handshaking) => TCP의 특징

 

가상 연결하는 과정이 존재 

       클라이언트                         서버

1      closed                               listen(서버는 열려있는상태 => 보안적으로 위험 ...일단 받고 보니깐)

2      syn sent  -> SYN

3                               syn + ack     <-  syn recieved

4. established   -> ACK       

5.                                                      Established

 

 

=> 봇(좀비 피씨) 가 syn을 몇만개 보내 => 서버 과부화...ㅠ

=> 분산공격  => 디도스 공격

 

 

연결 해제 과정

 

       클라이언트                                     서버

1      Established (연결되어있는)      Established

2      Close wait  -> FIN(finish)=>"나 끊을게"

3                              ack, FIN     <- close wait

4.     established   -> ACK       

5.                                                      closed

 

 

 

UDP(User Datagram Protocol)

예를 들어 실시간 영상들을 사용할때 tcp의 연락을 기다리는 그러한 형태는 불편하다. 

 

-비연결 지향형 프로토콜

-상대방이 보낸 응답을 확인하지 않아 네트워크에 부하를 주지 않음

-데이터 자체의 신뢰성이 없어 수신한 데이터의 무결성을 보장받지 못함.

 

 

7계층 => 응용계층 

관련 응용 프로그램이 별도로 존재

 

=> UI 제공

 

FTP(File Transfer Protocol)

 

tcp \ ip 를 이용하여 사용(port 20 ,21)

=>텔넷과 함께 표준으로 제정

=> 클라이언트와 서버가 대화형으로 통신 가능

 

 

텔넷 (port 23)

사용자가 원격에 있는 서버에 로그인 하도록 tcp연결을 설정

단말기가 원격 컴퓨터 바로 옆에 있는것 처럼 직접 조작.

=> 만약 포트가 열려있다면 ip를 찾아내서 관리자 권한을 따내려고 한다.따라서 초반에 연결후 포트를 닫아둔다

 

smtp(simple mail transfer protocol, 25)

- 메일 서비스

 

DNS(domain name system, 53)

TFTP(trivial file transfer protocol,69)

Http(HyperText Transfer Protocol,80)

 

 

 

 

반응형

'이론 > 네트워크' 카테고리의 다른 글

기본  (0) 2021.09.19