신뢰할 수 없는 공용망에서도 정보유실 없는 통신을 보장하기 위해 세션을 안전하게 연결하고 데이터를 분할하고, 분할된 패킷이 잘 전송되었는지 확인하는 기능이 있다.
패킷에 번호 (Sequence Number)를 부여하고 잘 전송되었는지에 대해 응답 (Acknowledge Number)함.
한꺼번에 얼마나 보내야 수신자가 잘 받아 처리할 수 있는지 전송 크기 (Window Size)까지 고려해 통신함
https://en.wikipedia.org/wiki/Transmission_Control_Protocol
일반적으로 20바이트 최대 60바이트까지 늘어날 수 있다.
window 야 보내도 돼? 어 보내도 돼 얼만큼 더 보내~
어떤 패킷이 새로운 연결시도고 기존 통신에 대한 응답인지 구분하기 위해 헤더에 플래그 값 집어넣음
URG
(1 bit): Indicates that the Urgent pointer field is significantACK
(1 bit): Indicates that the Acknowledgment field is significant. All packets after the initial SYN packet sent by the client should have this flag set. (= 초기 SYN이 아닌 패킷은 기존 메시지에 대한 응답이므로 ACK 플래그가 1로 표기됨)PSH
(1 bit): Push function. Asks to push the buffered data to the receiving application.RST
(1 bit): Reset the connection (연결 강제 종료)SYN
(1 bit): Synchronize sequence numbers. Only the first packet sent from each end should have this flag set. Some other flags and fields change meaning based on this flag, and some are only valid when it is set, and others when it is clear.FIN
(1 bit): Last packet from sender (final, 연결 종료시 1로 표시. 정상적 양방향 통신 종료)
출처
[1 단계. 클라이언트가 서버에게 존재를 알린다. 2단계. 서버가 클라이언트의 존재를 알았다고 대답을 하면서 클라이언트에게 내 존재를 알린다. 3단계. 클라이언트가 서버의 존재를 알았다고 대답을 한다.]
패킷을 분할하고 조합하기 위해 TCP 프로토콜에서는 시퀀스 번호와 ACK 번호를 사용함.
패킷 순서 부여: 시퀀스 번호
응답 번호 부여: ACK 번호
=> 중간 패킷 손실된걸 파악할 수 있음
http://www.ktword.co.kr/test/view/view.php?m_temp1=657
https://yjkim97.tistory.com/77
Network address translation (NAT) is a method of mapping an IP address space into another by modifying network address information in the IP header of packets while they are in transit across a traffic routing device
IPv4 주소고갈문제를 해결하는 법으로 쓰임
사설 ip, 외부망 ip
보안 강화
외부에서 사내 ip 주소 체계를 가릴 수 있다.
https://mikrkosmos97.tistory.com/104
원격 해커가 내부 네트워크의 기기를 공격할 수 있는 새로운 공격 발견
출처: https://blog.alyac.co.kr/3545 [이스트시큐리티 알약 블로그:티스토리]