In all cases, parrying is client side on the parryer's end. The player doing the parry is the one doing all these checks, and they inform the attacking player they have been parryed.

Dark Souls 3

Dark Souls 3 has 2 types of mechanisms for parrying.

1. The first is based on the weapon hitbox itself, referred to as "force parrying". This type of parry takes the hitbox of the weapon, and checks if it intersects with the hitbox that the parry animation generates.
If it does intersect, then it checks if the weapon's animation is parryable at this time, by checking the is_parryable TAE flag in it's animation.
If the flag is enabled, it then does a final check that validates the angle of the attacking player is "acceptable", and if so the check passes.
See this image for what angles the attacker is facing are allowed:

unknown.png

If all checks pass at this point, then the parry is accepted.

2. The 2nd parry mechanism is based on the hand hitbox, which is a custom hitbox present on the chr model itself.
Like the first parry type, this takes the hitbox of the hand, and checks if it intersects with the hitbox that the parry animation generates.
If it does intersect, then it checks if the weapon's animation is parryable at this time, by checking the is_parryable TAE flag in it's animation. This flag applies to the hand parry as well, it serves double duty.
If all checks pass at this point, then the parry is accepted.
The point of this 2nd type of parry is that it can occur even if the weapon itself doesn't have a hitbox out yet.

refs: https://www.youtube.com/watch?v=QRdBwOG27yA, https://youtu.be/btfoypwRpls?t=232