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)